十六进制为十进制批处理文件 [英] hexadecimal to decimal batch file
问题描述
好了,所以我一直在努力,在转换为十六进制基地十位十进制值的一个批处理文件,但我不能让for循环和if语句降权是每次我看着好像是给我的错误信息这里是我的code。感谢所有的答复。
@回声关闭
呼应十六进制十进制转换器1.0集OneOn = FALSE
设置TwoOn = FALSE
设置ThreeOn = FALSE
设置FourOn = FALSE
设置FiveOn = FALSE
设置SixOn = FALSE
设置SevenOn = FALSE
设置EightOn = FALSE设置firstDig = 0
设置secondDig = 0
设定位= 128 64 32 16 8 4 2 1 0设置总= 0
设置输入= 43集/ P输入=输入号码(0-255):
如果%输入%GTR 15转到其他
如果%输入%== 1回声十六进制%输入%=%输入%
如果%输入%== 2回声十六进制%输入%=%输入%
如果%输入%== 3回声十六进制%输入%=%输入%
如果%输入%== 4回声十六进制%输入%=%输入%
如果%输入%== 5回声十六进制%输入%=%输入%
如果%输入%== 6回声十六进制%输入%=%输入%
如果%输入%== 7回声十六进制%输入%=%输入%
如果%输入%== 8回声十六进制%输入%=%输入%
如果%输入%== 9回声十六进制%输入%=%输入%
如果%输入%== 10回声十六进制%输入%= A
如果%输入%== 11回声十六进制%输入%= B
如果%输入%== 12回声十六进制%输入%= C
如果%输入%== 13回声十六进制%输入%= D
如果%输入%== 14回声十六进制%输入%= E
如果%输入%== 15回声十六进制%输入%= F
暂停
:其他
对/ L %% G(0,1,8)做(
对/ L %% F(0,1,8)做(
对/ L %% D(0,1,8)做(
对/ L %% S(0,1,8)做(
对/ L %% A(0,1,8)做(
对/ L %% L(0,1,8)做(
对/ L %% K(0,1,8)做(
对/ L %%Ĵ(0,1,8)做(
对/ L %% H(0,1,8)做( 设置TESTTOTAL =位数[%H%] +数字[引用%j%] +数字[%K%] +数字[%L%] +数字[%A%] +数字[%S%] +数字[%D% ] +位[%F%] +数字[%G%]
如果%TESTTOTAL%==%输入%转到比赛 )
)
)
)
)
)
)
)
)
):匹配
如果位[%H%] == 1 OneOn =真
如果位[%H%] == 2 TwoOn =真
如果位[%H%] == 4 ThreeOn =真
如果位[%H%] == 8 FourOn =真
如果位[%H%] == 16 FiveOn =真
如果位[%H%] == 32 SixOn =真
如果位[%H%] == 64 SevenOn =真
如果位[%H%] == 128 EightOn =真如果数字[引用%j%] == 1 OneOn =真
如果数字[引用%j%] == 2 TwoOn =真
如果数字[引用%j%] == 4 ThreeOn =真
如果数字[引用%j%] == 8 FourOn =真
如果数字[引用%j%] == 16 FiveOn =真
如果数字[引用%j%] == 32 SixOn =真
如果数字[引用%j%] == 64 SevenOn =真
如果数字[引用%j%] == 128 EightOn =真如果位[%K%] == 1 OneOn =真
如果位[%K%] == 2 TwoOn =真
如果位[%K%] == 4 ThreeOn =真
如果位[%K%] == 8 FourOn =真
如果位[%K%] == 16 FiveOn =真
如果位[%K%] == 32 SixOn =真
如果位[%K%] == 64 SevenOn =真
如果位[%K%] == 128 EightOn =真如果位[%L%] == 1 OneOn =真
如果位[%L%] == 2 TwoOn =真
如果位[%L%] == 4 ThreeOn =真
如果位[%L%] == 8 FourOn =真
如果位[%L%] == 16 FiveOn =真
如果位[%L%] == 32 SixOn =真
如果位[%L%] == 64 SevenOn =真
如果位[%L%] == 128 EightOn =真如果位[%A%] == 1 OneOn =真
如果位[%A%] == 2 TwoOn =真
如果位[%A%] == 4 ThreeOn =真
如果位[%A%] == 8 FourOn =真
如果位[%A%] == 16 FiveOn =真
如果位[%A%] == 32 SixOn =真
如果位[%A%] == 64 SevenOn =真
如果位[%A%] == 128 EightOn =真如果位[%S%] == 1 OneOn =真
如果位[%S%] == 2 TwoOn =真
如果位[%S%] == 4 ThreeOn =真
如果位[%S%] == 8 FourOn =真
如果位[%S%] == 16 FiveOn =真
如果位[%S%] == 32 SixOn =真
如果位[%S%] == 64 SevenOn =真
如果位[%S%] == 128 EightOn =真如果位[%D%] == 1 OneOn =真
如果位[%D%] == 2 TwoOn =真
如果位[%D%] == 4 ThreeOn =真
如果位[%D%] == 8 FourOn =真
如果位[%D%] == 16 FiveOn =真
如果位[%D%] == 32 SixOn =真
如果位[%D%] == 64 SevenOn =真
如果位[%D%] == 128 EightOn =真如果位[%F%] == 1 OneOn =真
如果位[%F%] == 2 TwoOn =真
如果位[%F%] == 4 ThreeOn =真
如果位[%F%] == 8 FourOn =真
如果位[%F%] == 16 FiveOn =真
如果位[%F%] == 32 SixOn =真
如果位[%F%] == 64 SevenOn =真
如果位[%F%] == 128 EightOn =真如果位[%G%] == 1 OneOn =真
如果位[%G%] == 2 TwoOn =真
如果位[%G%] == 4 ThreeOn =真
如果位[%G%] == 8 FourOn =真
如果位[%G%] == 16 FiveOn =真
如果位[%G%] == 32 SixOn =真
如果位[%G%] == 64 SevenOn =真
如果位[%G%] == 128 EightOn =真如果OneOn ==真&安培; TwoOn ==真&安培; ThreeOn ==真&安培; FourOn == TRUE secondDig = F
如果OneOn ==真&安培; TwoOn ==真&安培; ThreeOn ==真&安培; FourOn ==假secondDig = E
如果OneOn ==真&安培; TwoOn ==真&安培; ThreeOn ==假放; FourOn == TRUE secondDig = D
如果OneOn ==假放; TwoOn ==假放; ThreeOn ==真&安培; FourOn == TRUE secondDig = C
如果OneOn ==真&安培; TwoOn ==真&安培; ThreeOn ==假放; FourOn == TRUE secondDig = B
如果OneOn ==假放; TwoOn ==真&安培; ThreeOn ==假放; FourOn == TRUE secondDig = A
如果OneOn ==真&安培; TwoOn ==假放; ThreeOn ==假放; FourOn == TRUE secondDig = 9
如果OneOn ==假放; TwoOn ==假放; ThreeOn ==假放; FourOn == TRUE secondDig = 8
如果OneOn ==真&安培; TwoOn ==真&安培; ThreeOn ==真&安培; FourOn ==假secondDig = 7
如果OneOn ==假放; TwoOn ==真&安培; ThreeOn ==真&安培; FourOn ==假secondDig = 6
如果OneOn ==真&安培; TwoOn ==假放; ThreeOn ==真&安培; FourOn ==假secondDig = 5
如果OneOn ==假放; TwoOn ==假放; ThreeOn ==真&安培; FourOn ==假secondDig = 4
如果OneOn ==真&安培; TwoOn ==真&安培; ThreeOn ==假放; FourOn ==假secondDig = 3
如果OneOn ==假放; TwoOn ==真&安培; ThreeOn ==假放; FourOn ==假secondDig = 2
如果OneOn ==真&安培; TwoOn ==假放; ThreeOn ==假放; FourOn ==假secondDig = 1
如果OneOn ==假放; TwoOn ==假放; ThreeOn ==假放; FourOn ==假secondDig = 0如果FiveOn ==真&安培; SixOn ==真&安培; SevenOn ==真&安培; EightOn ==真firstDig = F
如果FiveOn ==真&安培; SixOn ==真&安培; SevenOn ==真&安培; EightOn ==假firstDig = E
如果FiveOn ==真&安培; SixOn ==真&安培; SevenOn ==假放; EightOn ==真firstDig = D
如果FiveOn ==假放; SixOn ==假放; SevenOn ==真&安培; EightOn ==真firstDig = C
如果FiveOn ==真&安培; SixOn ==真&安培; SevenOn ==假放; EightOn ==真firstDig = B
如果FiveOn ==假放; SixOn ==真&安培; SevenOn ==假放; EightOn ==真firstDig = A
如果FiveOn ==真&安培; SixOn ==假放; SevenOn ==假放; EightOn ==真firstDig = 9
如果FiveOn ==假放; SixOn ==假放; SevenOn ==假放; EightOn ==真firstDig = 8
如果FiveOn ==真&安培; SixOn ==真&安培; SevenOn ==真&安培; EightOn ==假firstDig = 7
如果FiveOn ==假放; SixOn ==真&安培; SevenOn ==真&安培; EightOn ==假firstDig = 6
如果FiveOn ==真&安培; SixOn ==假放; SevenOn ==真&安培; EightOn ==假firstDig = 5
如果FiveOn ==假放; SixOn ==假放; SevenOn ==真&安培; EightOn ==假firstDig = 4
如果FiveOn ==真&安培; SixOn ==真&安培; SevenOn ==假放; EightOn ==假firstDig = 3
如果FiveOn ==假放; SixOn ==真&安培; SevenOn ==假放; EightOn ==假firstDig = 2
如果FiveOn ==真&安培; SixOn ==假放; SevenOn ==假放; EightOn ==假firstDig = 1
如果FiveOn ==假放; SixOn ==假放; SevenOn ==假放; EightOn ==假firstDig = 0回响在十六进制%输入%=%firstDig%%secondDig%
暂停
的假设你要转换的十六进制转换为十进制数字:的
为什么不直接使用设置/ A
做对自己的工作吗? 设置/ A
是能够转换十六进制时$ P $与 0X
pfixed成十进制数。参见设置/?
了解详情。结果
在 DEC下面存储的十进制数的行
,假设 HEX
包含十六进制数:
设置/ A DEC =为0x%HEX%
下面的脚本提示输入十六进制的用户。号,并显示其小数重presentation:
关闭@echo
:循环
集HEX =
集/ PHEX =输入十六进制数(最多8位):
如果没有定义HEX转到:EOF
设置/ A DEC =为0x%HEX%
回声%HEX%小数重presentation是DEC%%。
后藤:LOOP
请注意,该十六进制数被限制为8位(32位),并且它是PTED为符号值间$ P $
的假设你要转换的十进制为十六进制数字:的
有是内置的环境变量叫无证 =退出code
持有的电流返回或退出code(十六进制字符code(ASCII)通常在的ErrorLevel
)。结果
在 HEX
下方店十六进制数的线条,假设 DEC
包含一个十进制数:
CMD / C退出%DEC%
集HEX =%=退出code%
下面的脚本提示输入十进制数的用户,并显示其十六进制。再presentation:
关闭@echo
:循环
集DEC =
集/ PDEC =输入一个十进制数(32位有符号整数):
如果没有定义DEC转到:EOF
CMD / C退出%DEC%
集HEX =%=退出code%
FOR / F令牌= * delims = 0%%的(%HEX%)z不要设置HEX = %% Z
如果没有定义HEX集HEX = 0
回声%DEC%的十六进制再presentation是%HEX%。
后藤:LOOP
okay so I have been working an a batch file that converts a base ten decimal value in to hexadecimal but I can't get the for loops and the if statements down right every were I look seems to be giving me the wrong information here is my code. thank you to all that reply
@ echo off
echo Hexa Decimal Convertor 1.0
set OneOn = false
set TwoOn = false
set ThreeOn = false
set FourOn = false
set FiveOn = false
set SixOn = false
set SevenOn = false
set EightOn = false
set firstDig = 0
set secondDig = 0
set digits = 128 64 32 16 8 4 2 1 0
set Total = 0
set INPUT = 43
set /p INPUT=Enter a number (0-255):
if %INPUT% gtr 15 goto other
if %INPUT% == 1 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 2 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 3 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 4 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 5 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 6 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 7 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 8 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 9 echo IN HEXADECIMAL %INPUT% = %INPUT%
if %INPUT% == 10 echo IN HEXADECIMAL %INPUT% = A
if %INPUT% == 11 echo IN HEXADECIMAL %INPUT% = B
if %INPUT% == 12 echo IN HEXADECIMAL %INPUT% = C
if %INPUT% == 13 echo IN HEXADECIMAL %INPUT% = D
if %INPUT% == 14 echo IN HEXADECIMAL %INPUT% = E
if %INPUT% == 15 echo IN HEXADECIMAL %INPUT% = F
pause
:other
for /l %%G (0, 1, 8) do (
for /l %%F (0,1,8) do (
for /l %%D (0,1,8) do (
for /l %%S (0,1,8) do (
for /l %%A (0,1,8) do (
for /l %%L (0,1,8) do (
for /l %%K (0,1,8) do (
for /l %%J (0,1,8) do (
for /l %%H (0,1,8) do (
set TESTTOTAL = digit[%H%] + digit[%J%] + digit[%K%] + digit[%L%] + digit[%A%] + digit[%S%] + digit[%D%] + digit[%F%] + digit[%G%]
if %TESTTOTAL% == %INPUT% goto match
)
)
)
)
)
)
)
)
)
)
:match
if digit[%H%] == 1 OneOn = true
if digit[%H%] == 2 TwoOn = true
if digit[%H%] == 4 ThreeOn = true
if digit[%H%] == 8 FourOn = true
if digit[%H%] == 16 FiveOn = true
if digit[%H%] == 32 SixOn = true
if digit[%H%] == 64 SevenOn = true
if digit[%H%] == 128 EightOn = true
if digit[%J%] == 1 OneOn = true
if digit[%J%] == 2 TwoOn = true
if digit[%J%] == 4 ThreeOn = true
if digit[%J%] == 8 FourOn = true
if digit[%J%] == 16 FiveOn = true
if digit[%J%] == 32 SixOn = true
if digit[%J%] == 64 SevenOn = true
if digit[%J%] == 128 EightOn = true
if digit[%K%] == 1 OneOn = true
if digit[%K%] == 2 TwoOn = true
if digit[%K%] == 4 ThreeOn = true
if digit[%K%] == 8 FourOn = true
if digit[%K%] == 16 FiveOn = true
if digit[%K%] == 32 SixOn = true
if digit[%K%] == 64 SevenOn = true
if digit[%K%] == 128 EightOn = true
if digit[%L%] == 1 OneOn = true
if digit[%L%] == 2 TwoOn = true
if digit[%L%] == 4 ThreeOn = true
if digit[%L%] == 8 FourOn = true
if digit[%L%] == 16 FiveOn = true
if digit[%L%] == 32 SixOn = true
if digit[%L%] == 64 SevenOn = true
if digit[%L%] == 128 EightOn = true
if digit[%A%] == 1 OneOn = true
if digit[%A%] == 2 TwoOn = true
if digit[%A%] == 4 ThreeOn = true
if digit[%A%] == 8 FourOn = true
if digit[%A%] == 16 FiveOn = true
if digit[%A%] == 32 SixOn = true
if digit[%A%] == 64 SevenOn = true
if digit[%A%] == 128 EightOn = true
if digit[%S%] == 1 OneOn = true
if digit[%S%] == 2 TwoOn = true
if digit[%S%] == 4 ThreeOn = true
if digit[%S%] == 8 FourOn = true
if digit[%S%] == 16 FiveOn = true
if digit[%S%] == 32 SixOn = true
if digit[%S%] == 64 SevenOn = true
if digit[%S%] == 128 EightOn = true
if digit[%D%] == 1 OneOn = true
if digit[%D%] == 2 TwoOn = true
if digit[%D%] == 4 ThreeOn = true
if digit[%D%] == 8 FourOn = true
if digit[%D%] == 16 FiveOn = true
if digit[%D%] == 32 SixOn = true
if digit[%D%] == 64 SevenOn = true
if digit[%D%] == 128 EightOn = true
if digit[%F%] == 1 OneOn = true
if digit[%F%] == 2 TwoOn = true
if digit[%F%] == 4 ThreeOn = true
if digit[%F%] == 8 FourOn = true
if digit[%F%] == 16 FiveOn = true
if digit[%F%] == 32 SixOn = true
if digit[%F%] == 64 SevenOn = true
if digit[%F%] == 128 EightOn = true
if digit[%G%] == 1 OneOn = true
if digit[%G%] == 2 TwoOn = true
if digit[%G%] == 4 ThreeOn = true
if digit[%G%] == 8 FourOn = true
if digit[%G%] == 16 FiveOn = true
if digit[%G%] == 32 SixOn = true
if digit[%G%] == 64 SevenOn = true
if digit[%G%] == 128 EightOn = true
if OneOn == true & TwoOn == true & ThreeOn == true & FourOn == true secondDig = F
if OneOn == true & TwoOn == true & ThreeOn == true & FourOn == false secondDig = E
if OneOn == true & TwoOn == true & ThreeOn == false & FourOn == true secondDig = D
if OneOn == false & TwoOn == false & ThreeOn == true & FourOn == true secondDig = C
if OneOn == true & TwoOn == true & ThreeOn == false & FourOn == true secondDig = B
if OneOn == false & TwoOn == true & ThreeOn == false & FourOn == true secondDig = A
if OneOn == true & TwoOn == false & ThreeOn == false & FourOn == true secondDig = 9
if OneOn == false & TwoOn == false & ThreeOn == false & FourOn == true secondDig = 8
if OneOn == true & TwoOn == true & ThreeOn == true & FourOn == false secondDig = 7
if OneOn == false & TwoOn == true & ThreeOn == true & FourOn == false secondDig = 6
if OneOn == true & TwoOn == false & ThreeOn == true & FourOn == false secondDig = 5
if OneOn == false & TwoOn == false & ThreeOn == true & FourOn == false secondDig = 4
if OneOn == true & TwoOn == true & ThreeOn == false & FourOn == false secondDig = 3
if OneOn == false & TwoOn == true & ThreeOn == false & FourOn == false secondDig = 2
if OneOn == true & TwoOn == false & ThreeOn == false & FourOn == false secondDig = 1
if OneOn == false & TwoOn == false & ThreeOn == false & FourOn == false secondDig = 0
if FiveOn == true & SixOn == true & SevenOn == true & EightOn == true firstDig = F
if FiveOn == true & SixOn == true & SevenOn == true & EightOn == false firstDig = E
if FiveOn == true & SixOn == true & SevenOn == false & EightOn == true firstDig = D
if FiveOn == false & SixOn == false & SevenOn == true & EightOn == true firstDig = C
if FiveOn == true & SixOn == true & SevenOn == false & EightOn == true firstDig = B
if FiveOn == false & SixOn == true & SevenOn == false & EightOn == true firstDig = A
if FiveOn == true & SixOn == false & SevenOn == false & EightOn == true firstDig = 9
if FiveOn == false & SixOn == false & SevenOn == false & EightOn == true firstDig = 8
if FiveOn == true & SixOn == true & SevenOn == true & EightOn == false firstDig = 7
if FiveOn == false & SixOn == true & SevenOn == true & EightOn == false firstDig = 6
if FiveOn == true & SixOn == false & SevenOn == true & EightOn == false firstDig = 5
if FiveOn == false & SixOn == false & SevenOn == true & EightOn == false firstDig = 4
if FiveOn == true & SixOn == true & SevenOn == false & EightOn == false firstDig = 3
if FiveOn == false & SixOn == true & SevenOn == false & EightOn == false firstDig = 2
if FiveOn == true & SixOn == false & SevenOn == false & EightOn == false firstDig = 1
if FiveOn == false & SixOn == false & SevenOn == false & EightOn == false firstDig = 0
echo in hexadecimal %INPUT% = %firstDig% %secondDig%
pause
Supposing you want to convert hexadecimal to decimal numbers:
Why not simply using set /A
to do the job on its own? set /A
is capable of converting hexadecimal to decimal numbers when prefixed with 0x
. See set /?
for details.
The line below stores the decimal number in DEC
, supposing HEX
contains a hexadecimal number:
set /A DEC=0x%HEX%
The following script prompts the user for a hex. number and displays its decimal representation:
@echo off
:LOOP
set "HEX="
set /P "HEX=Enter a hexadecimal number (up to 8 digits): "
if not defined HEX goto :EOF
set /A DEC=0x%HEX%
echo The decimal representation of %HEX% is %DEC%.
goto :LOOP
Note that the hexadecimal number is limited to 8 digits (32 bits), and it is interpreted as signed value.
Supposing you want to convert decimal to hexadecimal numbers:
There is an undocumented built-in environment variable called =ExitCode
that holds the hexadecimal character code (ASCII) of the current return or exit code (usually the ErrorLevel
).
The lines below store the hexadecimal number in HEX
, supposing DEC
contains a decimal number:
cmd /C exit %DEC%
set "HEX=%=ExitCode%"
The following script prompts the user for a decimal number and displays its hex. representation:
@echo off
:LOOP
set "DEC="
set /P "DEC=Enter a decimal number (signed 32-bit integer): "
if not defined DEC goto :EOF
cmd /C exit %DEC%
set "HEX=%=ExitCode%"
for /F "tokens=* delims=0" %%Z in ("%HEX%") do set "HEX=%%Z"
if not defined HEX set "HEX=0"
echo The hexadecimal representation of %DEC% is %HEX%.
goto :LOOP
这篇关于十六进制为十进制批处理文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!