批处理如何实现将16进制的内容转换成有效数字计算,并识别到0开头和都是00的字符,计算结果为16进制
答案:1 悬赏:20 手机版
解决时间 2021-03-25 21:08
- 提问者网友:活着好累
- 2021-03-25 10:15
批处理如何实现将16进制的内容转换成有效数字计算,并识别到0开头和都是00的字符,计算结果为16进制
最佳答案
- 五星知识达人网友:逃夭
- 2021-03-25 11:33
@echo off
for /l %%i in (0 1 9)do set "#%%i=.%%i"
for %%i in (10.A 11.B 12.C 13.D 14.E 15.F)do set "#%%~ni=%%~xi"
(for /f %%i in (a.txt)do (set "ss=%%i"
setlocal enabledelayedexpansion
for /l %%j in (0 2 14)do set/a "s+=0x!ss:~%%j,2!"
set/a "s=(0x100-s%%0x100)%%16"
set/a "a=s/16,b=s%%16"
call set "a=%%#!a!%%"
call set "b=%%#!b!%%"
echo %%i!a:~1!!b:~1!
endlocal))>b.txt追问@yyykkkyyyy,还是没有得到想要的效果
047FD8009E1F00E8~10
047FD40012B4C6E805
047F00001234A5A50D
047F0400A5A5123409
第一个数倒数第2字节变成了~1,其他的倒数第2个字节全部变成0了追答第7行改为
set/a "s=(0x100-s%%0x100)%%0x100"
for /l %%i in (0 1 9)do set "#%%i=.%%i"
for %%i in (10.A 11.B 12.C 13.D 14.E 15.F)do set "#%%~ni=%%~xi"
(for /f %%i in (a.txt)do (set "ss=%%i"
setlocal enabledelayedexpansion
for /l %%j in (0 2 14)do set/a "s+=0x!ss:~%%j,2!"
set/a "s=(0x100-s%%0x100)%%16"
set/a "a=s/16,b=s%%16"
call set "a=%%#!a!%%"
call set "b=%%#!b!%%"
echo %%i!a:~1!!b:~1!
endlocal))>b.txt追问@yyykkkyyyy,还是没有得到想要的效果
047FD8009E1F00E8~10
047FD40012B4C6E805
047F00001234A5A50D
047F0400A5A5123409
第一个数倒数第2字节变成了~1,其他的倒数第2个字节全部变成0了追答第7行改为
set/a "s=(0x100-s%%0x100)%%0x100"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯