我正在嘗試編寫一個二進制到十進制轉換器批量處理CMD。我有一個問題,一些二進制數給了我一個更高的十進制數比它應該。儘管我感到困惑的是,11111111給了我255.
下面是給出的錯誤數字的一些例子。
01110101給了297
01111010給了312
01111101給數321這段代碼有什麼問題?二進制到十進制批處理
@Echo off
Color 0e
:Start
Title Binary to Decimal
Set /p Bin=Binary Number?
Set Dec=0
:Check
If %Bin% GEQ 10000000 Goto ADD128
If %Bin% GEQ 1000000 Goto ADD64
If %Bin% GEQ 100000 Goto ADD32
If %Bin% GEQ 10000 Goto ADD16
If %Bin% GEQ 1000 Goto ADD8
If %Bin% GEQ 100 Goto ADD4
If %Bin% GEQ 10 Goto ADD2
If %Bin% GEQ 1 Goto ADD1
Goto Fin
:ADD128
Set /a Dec= %Dec% + 128
Set /a Bin= %Bin% - 10000000
Goto Check
:ADD64
Set /a Dec= %Dec% + 64
Set /a Bin= %Bin% - 1000000
Goto Check
:ADD32
Set /a Dec= %Dec% + 32
Set /a Bin= %Bin% - 100000
Goto Check
:ADD16
Set /a Dec= %Dec% + 16
Set /a Bin= %Bin% - 10000
Goto Check
:ADD8
Set /a Dec= %Dec% + 8
Set /a Bin= %Bin% - 1000
Goto Check
:ADD4
Set /a Dec= %Dec% + 4
Set /a Bin= %Bin% - 100
Goto Check
:ADD2
Set /a Dec= %Dec% + 2
Set /a Bin= %Bin% - 10
Goto Check
:ADD1
Set /a Dec= %Dec% + 1
Set /a Bin= %Bin% - 1
Goto Check
:Fin
Echo %Dec%
Pause
Goto Start
編輯您的帖子以添加一些錯誤轉換的示例 - 不要讓我們猜測。 – Magoo