fc2ブログ

2023.08 «  - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2023.10
TOP > 1バイトで符号付き整数を表す

 ← screenコマンドで今開いているスクリーンを最下段に一覧表示する | TOP | メソッド名を呼ぶときにメソッド名の前に付けるのはピリオドなのかコロンコロンなのか

1バイトで符号付き整数を表す 

2009年10月12日 ()
混乱しそうだったのでメモ書きです。(特に-128絡み)

1byteはいわずと知れた8bitsです。

つまりは0か1が8個連なった2進数です。00000000みたいな。

この1byteで表せる符号付き整数は-128~127という範囲内です。

上位1ビットから下位8ビットの数の割り当ては以下の通り

[1] -128
[2] 64
[3] 32
[4] 16
[5] 8
[6] 4
[7] 2
[8] 1


2進数で

10010111

の場合は、

(1 x -128) +
(0 x 64) +
(0 x 32) +
(1 x 16) +
(0 x 8) +
(1 x 4) +
(1 x 2) +
(1 x 1)

つまりは

-128 + 16 + 4 + 2 + 1

だから

10進数では

-105



1~127に限っては、ビット反転して1を足せば絶対値が同じ負の数に変換できます。


00000010 #これは2です
↓ ビット反転する
11111101
↓ 1を足す
11111110 #これが-2です



ビット同士の足し算(注:OR演算ではない)を行えば10進数で足した結果と同じになります。

 10010111 (-105)
+00101100 (44)
----------------
 11000011 (-61)



てな感じ。

【広告】

[2009.10.12(Mon) 22:04] MATZTrackback(0) | Comments(0)
↑TOPへ

 ← screenコマンドで今開いているスクリーンを最下段に一覧表示する | TOP | メソッド名を呼ぶときにメソッド名の前に付けるのはピリオドなのかコロンコロンなのか

COMMENT

COMMENT POST















管理者にだけ表示

 ← screenコマンドで今開いているスクリーンを最下段に一覧表示する | TOP | メソッド名を呼ぶときにメソッド名の前に付けるのはピリオドなのかコロンコロンなのか