标题: [数值计算] 批处理怎样在一个文本16进制字符转换成10进制字符? [打印本页]
作者: shchaoge 时间: 2012-10-11 23:01 标题: 批处理怎样在一个文本16进制字符转换成10进制字符?
http://www.bathome.net/viewthrea ... 26amp%3Btypeid%3D14
谢谢大家帮我解决了问题 但有个新问题出来 又开请教大家啦! 弄个批处理2个问题能一起解决那就最好
如题:我有个文本内容为:515253545556575859606162 批处理运行后为:333435363738393A3B3C3D3E
高手帮我写下代码,谢谢啦
作者: 乱码 时间: 2012-10-12 08:49
没明白的你要求,请详细举例说明、
作者: jiashadidai_110 时间: 2012-10-12 12:51
我给你个代码吧,你提问,问题都模糊不清,问的是十进制变成十六进制,a.txt中给的数据却是十六进制
这个代码是把十六进制变成十进制,十六进制是每两位一个划分,用|划分,表示的十进制用,划分
你保存成vbs的后缀,双击运行就可以查看了- option explicit
- dim fso,m,n,i,a,b,c,stra,strb
- set fso=createobject("scripting.filesystemobject")
- set m=fso.opentextfile("a.txt",1)
- set c=fso.createtextfile("1.txt",2,1)
- while m.atendofstream <> true
- n=m.readline
- i=1
- while i<len(n)
- a=mid(n,i,2)
- stra=stra&a&"|"
- b="&H"&a
- strb=strb&cint(b)&","
- i=i+2
- wend
- c.writeline stra
- c.writeline strb
- stra=""
- strb=""
- wend
- set fso=nothing
复制代码
作者: shchaoge 时间: 2012-10-12 23:03
是的 我就是想16进制数值 转换为10进制数值 谢谢楼上 我运行后出现错误
作者: jiashadidai_110 时间: 2012-10-12 23:23 标题: 标题
本帖最后由 jiashadidai_110 于 2012-10-12 23:48 编辑
不是吧,我的机器上怎么没报错!!!我在win7上可以呀。。。还有,你有没有改代码之类的,如果要变成多个(这里如果变成四个就会出错)十六进制进行转换,就会报错的。。
作者: shchaoge 时间: 2012-10-13 00:15
输出文本时空白的
作者: terse 时间: 2012-10-13 00:38
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (A.txt) do (
- set str=%%i
- set Ln=&set "Sn=!str!"
- for %%j in (4096 2048 1024 512 256 128 64 32 16)do if "!Sn:~%%j!" NEQ "" set/aLn+=%%j&set Sn=!Sn:~%%j!
- set Sn=!Sn!FEDCBA9876543210&set/aLn+=0x!Sn:~16,1!
- for /l %%j in (0 2 !Ln!) do (
- set /a "D=0x!str:~%%j,2!"
- set var=!var!!D!
- )
- echo !var!&set "var="
- )
- pause
复制代码
作者: jiashadidai_110 时间: 2012-10-13 08:44
怎么会出错了 我的都好使,你能告诉一下,你是怎么操作代码的吗?
是直接复制粘贴,还是有所修改
我又试了下,代码在win7和xp上都可以,并没报错
作者: shchaoge 时间: 2012-10-13 22:59
明白啦 是我问题内容问题 FF FF FF FF FF FF FF FF FF 4C 7D AF CE EC 。。。。。我文本有空格 谢谢 可以啦
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |