回答編集履歴
2
表現変更
test
CHANGED
@@ -26,6 +26,6 @@
|
|
26
26
|
|
27
27
|
渡された文字列が0x7fff以下かそうでないかで処理を分けている理由は、渡される4桁の16進数がマイナスの数値を「1の補数」で表現しているからです。
|
28
28
|
|
29
|
-
数値を表現する方法の詳細は割愛しますが、大雑把に言うと0x0000~0x7fffはそのままプラスの数値、0x8000~0xffffは0xffffが0、0xfffeが-1、0xfffdが-2、0xfffcが-3……
|
29
|
+
数値を表現する方法の詳細は割愛しますが、大雑把に言うと0x0000~0x7fffはそのままプラスの数値、0x8000~0xffffはマイナスの数値(0xffffが0、0xfffeが-1、0xfffdが-2、0xfffcが-3……)として解釈しています。
|
30
30
|
|
31
31
|
もし詳細な方法を理解したいのであれば「1の補数」や「2の補数」で検索してみてください。
|
1
追記
test
CHANGED
@@ -26,6 +26,6 @@
|
|
26
26
|
|
27
27
|
渡された文字列が0x7fff以下かそうでないかで処理を分けている理由は、渡される4桁の16進数がマイナスの数値を「1の補数」で表現しているからです。
|
28
28
|
|
29
|
-
数値を表現する方法の詳細は割愛しますが、大雑把に言うと0x0000~0x7fffはそのままプラスの数値、0xffffは0、0xfffe
|
29
|
+
数値を表現する方法の詳細は割愛しますが、大雑把に言うと0x0000~0x7fffはそのままプラスの数値、0x8000~0xffffは0xffffが0、0xfffeが-1、0xfffdが-2、0xfffcが-3……のように解釈しています。
|
30
30
|
|
31
31
|
もし詳細な方法を理解したいのであれば「1の補数」や「2の補数」で検索してみてください。
|