LAST UPDATE 1998/08/01


『 その7-5 』


 ■ 16進数(基礎)

 VBで簡単にプログラミングといってみても、やっぱりコンピュータと16進数は切り離せないものだったりするわけだ。実は16進数は時と場合によってはとても便利でわかりやすい数値の表記法だったりするので、ぜひこの機会に覚えてもらいたい。
 なんたらの検定試験などでは必ず10進16進の変換などというものをやらされる。実際問題として変換はプログラミング言語が勝手にやってくれるのであまり重要ではない。私に言わせればくだらないのである。16進数にはもっと大切な事がある。それは符号との関係だ。
 ここでは「1バイト」という範囲で説明していく。VBでは16進数を&H10などと表記する。これは10進数で表すと16という数値になる。
    1バイト=8ビット:0~255までを表す
    &H00 = 0
    &H01 = 1
    &H02 = 2
    …………
    &H09 = 9
    &H0A = 10
    &H0B = 11
    …………
    &H0F = 15
    &H10 = 16
    …………
    &HFF = 255
    &H00 = 256
 これはVBで「バイト型」という変数の形式である。16進数2桁で表すことのできる最大値は255で、それに1を足した256は16進2桁では&H100なのだが、2桁であるがゆえに最上位の1が溢れて消失して&H00になってしまう。このように正の数しか考えない形式をC言語などではunsignedとか表現するが、VBではそういった分類は存在しない。


 ■ 16進数(符号つき)

 数値を表す際に、どうしても負の数(マイナス)が必要になる場合がある。しかし16進数には±などの符号をつけることは許されていない。そこで、一定のルールに従って16進数でマイナスの数を表せるようになっている。これが「符号付16進数」である。
 2桁の場合を例にとってみよう。上の例でも示したが、256=&H00である。だから、16進2桁の世界では
    255+1=0
などという数式が成立し、255=-1 になってしまう。これを16進数で書くと
    &HFF = -1
である。物の本によると、2進数でビットを反転し1足せば良いとか書いてあるようだが、わかりやすく書いてしまえば&H100からその数を引けば符号が反転できる。このようなルールに従って16進数2桁で符号つきで数を表していくと、-128~+127までの数があらわすことができる。



 ■ 16進数(桁数と最大数)

 16進数2桁であらわすことのできる数値は、0~255(-128~+127)までの256種類である。それはなぜか。16進数をあらわすのに用いられる記号の種類は16種類(0~9、A~F)である。それが2桁であるから16×16=256なのである。では4桁の場合はどうなるかというと、同様に16×16×16×16=65536種類。8桁では数えられないほどたくさんである。
 VBで用意されているInteger(%)は16進数で4桁であらわされ、2バイトとも言う。Integer型とLong(&)型は必ず「符号つき」なので、Integer型の変数の範囲は-32768~32767までの65536種類なのである。






その7-1 | その7-2 | その7-3 | その7-4 | その7-5 | その7-6

『 サルのゲーム製作講座 』 目次 | その 1 | その 2 | その 3 | その 4 |
その 5 | その 6 | その 7 | その 8 | その 9 | その 10 | その 11


もどる

e-mail: sc_3da@magical2.egg.or.jp