SetLocal
Set RC=-1
Call :Dec2Hex %RC%
Echo %Dec2Hex%
EndLocal
Exit /B
:Dec2Hex
Set /A Dec2Hex9=%1
If %1 GEQ 0 (
Set Dec2Hex8=0123456789ABCDEF
) Else (
Set /A Dec2Hex9=%Dec2Hex9:~1% - 1
Set Dec2Hex8=FEDCBA9876543210
)
Set Dec2Hex=
For /L %%A in (1, 1, 8) Do Call :Dec2Hex1
Set Dec2Hex=0x%Dec2Hex%
GoTo :EoF
:Dec2Hex1
Set /A Dec2Hex7=%Dec2Hex9% %% 16
Call Set Dec2Hex7=%%Dec2Hex8:~%Dec2Hex7%,1%%
Set Dec2Hex=%Dec2Hex7%%Dec2Hex%
Set /A Dec2Hex9=%Dec2Hex9% / 16
GoTo :EoF |
例:-1 を変換してみる
結果は Dec2Hex に入ってる
変換サブルーチン
正数の変換テーブル
負数ならちょっと細工
負数の変換テーブル
8桁固定で
1桁分の変換
下4ビット分の抽出
テーブル変換(二重展開)
下4ビット分の削除
|