我创建了一个循环来将十进制数转换为二进制数:
SET /P InputNum="Input Number: "
for /l %%x in (1, 1, 5) do (
SET /A Output=%InputNum% %% 2
SET BinaryArray[%%x]=%Output%
SET /A InputNum /= 2
)
ECHO Binary Result:
%BinaryArray[1]%%BinaryArray[2]%%BinaryArray[3]%%BinaryArray[4]%%BinaryArray[5]%
PAUSE
这不行。 'Output'没有被赋值,这意味着数组没有被填充,甚至'InputNum / = 2'由于某种原因也不起作用。输出'InputNum / = 2'似乎根本不起作用。
我以非形式工作:
SETLOCAL
SET /P InputNum="Input Number: "
SET /A Output1=%InputNum% %% 2
ECHO Bit 1: %Output1%
SET /A InputNum /= 2
SET /A Output2=%InputNum% %% 2
ECHO Bit 2: %Output2%
SET /A InputNum /= 2
SET /A Output3=%InputNum% %% 2
ECHO Bit 3: %Output3%
SET /A InputNum /= 2
SET /A Output4=%InputNum% %% 2
ECHO Bit 4: %Output4%
SET /A InputNum /= 2
SET /A Output5=%InputNum% %% 2
ECHO Bit 5: %Output5%
ECHO Binary Result: %Output1%%Output2%%Output3%%Output4%%Output5%
ENDLOCAL
PAUSE
但我不能为我的生活让它更接近功能更优雅的循环。我错过了一些我不理解的语法吗?
答案 0 :(得分:1)
setlocal enableDelayedExpansion
SET /P InputNum="Input Number: "
for /l %%x in (1, 1, 5) do (
SET /A Output=!InputNum! %% 2
SET BinaryArray[%%x]=!Output!
SET /A InputNum /= 2
)
ECHO Binary Result:
%BinaryArray[1]%%BinaryArray[2]%%BinaryArray[3]%%BinaryArray[4]%%BinaryArray[5]%
PAUSE