ビット表現
日常で使う0から9までの数字で表すのは10進数です。
ビットは0と1のみで表す2進数の数値です。
0から順番に数えていくと、
0⇒1⇒10⇒11⇒100⇒101⇒110⇒111⇒1000⇒1001⇒1010⇒1011⇒1100⇒1101⇒1110⇒1111
と増えていきます。
【参考】1バイトは8ビット、8ビットは8桁の0と1で表します。
ビット値は整数型変数で扱い、"0b"の後に0と1でビット値を書きます。
【参考】"%"の後に0と1でビット値を書く方法もあります。
変数名 = 0b2進数
※構文説明表記の「半角スペース」(space)は省略しています。
dim bit //整数型変数bitを宣言する
bit = 0b11 //・・・10進数は3
bit = 0b0011 //・・・10進数は3
bit = 0b1111 //・・・10進数は15
//%を使っても同じです
bit = %11 //・・・10進数は3
bit = %0011 //・・・10進数は3
bit = %1111 //・・・10進数は15
ビットシフト
桁を左右に指定数ぶん移動します。
シフト演算子は、左にシフトするときは<<、右にシフトするときは>>を使います。
変数名 = 0b2進数 シフト演算子 シフト数
dim bit //整数型変数bitを宣言する
bit = 0b00000001 << 3 //左に3桁シフト・・・0b00001000(※1)
bit = 0b00000000 << 3 //左に3桁シフト・・・0b00000000(※2)
bit = 0b11000000 >> 4 //右に4桁シフト・・・0b00001100(※3)
bit = 0b01000000 >> 7 //右に7桁シフト・・・0b00000000(※4)
(※1)10進数で1かあ3ビット左シフトで15。
(※2)どの桁にもビットが立っていない(1がない)ときはシフトしても変わりません。
(※3)10進数で192から4ビット右シフトで12。
(※4)最も左に立っているビットの桁数より多く右シフトすると0になります。
ビット演算
同じ位のビットに対して操作します。
変数名 = 0b2進数 ビット演算子 0b2進数
dim bit //整数型変数bitを宣言する
//論理和(or) ビット演算子は |
bit = 0b1100 | 0b0101 //・・・0b1101(※1)
//論理積(and) ビット演算子は &
bit = 0b1100 & 0b0101 //・・・0b0100(※2)
//排他的論理和(xor) ビット演算子は ^
bit = 0b1100 ^ 0b0101 //・・・0b1001(※3)
(※1)各桁どうしが0と0のときだけ0、それ以外は1になります。
(※2)各桁どうしが1と1のときだけ1、それ以外は0になります。
(※3)各桁どうしが同じとき0、異なるとき1になります。
進数表現
2進数の表現は以下の2通りあります。
変数名 = 0b1111
変数名 = %1111
16進数の表現は以下のように書きます。
変数名 = 0xF
変数名 = 0xf
変数名 = $F
変数名 = $f
16進数は0から9までの数字と10から15を表すAからFまでの英文字で表現します。
英文字は大文字でも小文字でも区別はありません。
MSBとLSB
2進数の桁数を表す方法です。
最上位の桁をMSB、最下位の桁をLSBと表現します。
bit = 0b10010110
//MSBは最上位なので1
//LSBは最下位なので0
MSB0ビット目=1(上位から1桁目)
MSB1ビット目=0(上位から2桁目)
MSB2ビット目=0(上位から3桁目)
MSB3ビット目=1(上位から4桁目)
LSB0ビット目=0(下位から1桁目)
LSB1ビット目=1(下位から2桁目)
LSB2ビット目=1(下位から3桁目)
LSB3ビット目=0(下位から4桁目)
Copyright © 2002-2026 team.Dakuji All Rights Reserved.