[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 【已结】求一个十进制/10进制转换成二进制/2进制的批处理程序!

本帖最后由 pcl_test 于 2017-5-29 21:31 编辑

求一个10进制转换成二进制的批处理程序!思路不限制!

本论坛搜索“进制”
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

貌似有公式的?
for /f "delims=" %%a in ('%0') do (echo %%a)

TOP

搜了,搜了两三个,都有几个关键地方看不懂!如果程序中关键代码中能加个注释就好了!

TOP

回复 4楼 的帖子

哪里不懂就问哪里,自然有人给你解释。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

代码

:10to2
set /p scanf=请输入你想转换的数字:
set var=%scanf%
set num=1
echo 转换前数字为 %var%
call :zhuanhuan

:zhuanhuan
set /a var%num%=%var%%%2    该行没看懂??
set /a var=%var%/2
set /a num+=1
if !var! neq 0 goto :zhuanhuan else goto :echo

:echo
for /l %%a in (%num% -1 1) do set /p=!var%%a!<nul   该行也没看懂??
pause>nul & cls
请热心朋友指教!

TOP

回复 6楼 的帖子

set /a var%num%=%var%%%2    该行没看懂??

十进制转二进制可以使用“整除2倒取余”法(如果对此算法不了解,请自行google之),这里就是进行取余计算。

for /l %%a in (%num% -1 1) do set /p=!var%%a!<nul   该行也没看懂??

这里的for就是为了实现上面说的“倒取余”,也就是把整除2的余数倒过来,set /p加上<nul就是为了不换行显示而已(可在本论坛搜索<nul的用法)。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7楼 的帖子

非常感谢Batcher的热心解答,目前该程序已全部弄懂,我觉得在该段代码中“set /a var%num%=%var%%%2”中变量var%num% 设置的最为巧妙。该变量为下面for命令中“倒取余”做了准备,这也是为什么变量要取var%num%的全部意义。

题外话:批处理现在很少人在用,而且说实在的到目前为止,我身边懂批处理的人好象都没有,如果可以的话,Batcher是否能共同探讨下批处理在现实生活中的意义,或则更俗地说一句,如果精通批处理,是否凭此能找到一份不错的工作?

[ 本帖最后由 vyuwwen1985 于 2009-1-15 11:33 编辑 ]

TOP

解决一些别的语言难以解决的问题batch很多时候都还可以,但是说要靠batch来赚钱就有点痴人说梦话了.
多学几门语言还是很NB的.
for /f "delims=" %%a in ('%0') do (echo %%a)

TOP

回复 9楼 的帖子

是啊,否则为什么会有那么多人不懂或者听都没听过批处理呢?bat的出现就不是为开发而诞生的,不过应该来说,只要是编程的话,不论是批处理还是C或是其他什么的,其中的算法和思路应该是可以相互可取的。如此,失落之中也有少许安慰了!

TOP

回复 8楼 的帖子

精通批处理,不足以让你找到一份工作;但是它可以让你在平时的工作中如鱼得水。
我在工作中用到批处理的情况:
1、定期清理日志文件
2、文件、文件夹批量操作
3、监控服务器的进程、服务等
4、自动FTP
......

如果你想从事软件开发,建议先把Java、C++等开发语言学好,再考虑批处理。像IBM、Sun等这些软件巨头,他们的软件产品中有很多大量使用批处理的情况,如果你正好精通批处理,可以让你更好的理解其产品的工作原理。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

10转2的话 可以简化点
  1. @echo off
  2. set/p h=请输入要转换的十进制数:
  3. cls
  4. set/p=%h% 的二进制为: <nul
  5. :lp
  6. set/a b=!(!(h%%2))
  7. set i=%b%%i%
  8. if %h% geq 2 set/a h=h/2 &&goto lp
  9. echo;%i%
  10. pause
复制代码

TOP

返回列表