[wiki]bit演算

bit演算

BITは1と0の組み合わせ、つまり2進数であり、使い方によっては非常に便利です。
BIT演算は通常CPUにとって加算や減算、除算乗算などと比べても高速に処理されるといわれています。
このため、ビットシフトや、OR、XOR、NOT、ANDなどを用いてBIT演算を行うとより高速に計算が可能です。

簡単な表

ビット表

2進数なので2^n毎に1ビットずつあがっていきます。

n 2**n = (十進数) 二進数表記
0 1 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001
1 2 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000010
2 4 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100
3 8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001000
4 16 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000
5 32 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00100000
6 64 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000
7 128 00000000 00000000 00000000 00000000 00000000 00000000 00000000 10000000
8 256 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000
9 512 00000000 00000000 00000000 00000000 00000000 00000000 00000010 00000000
10 1024 00000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000
11 2048 00000000 00000000 00000000 00000000 00000000 00000000 00001000 00000000
12 4096 00000000 00000000 00000000 00000000 00000000 00000000 00010000 00000000
13 8192 00000000 00000000 00000000 00000000 00000000 00000000 00100000 00000000
14 16384 00000000 00000000 00000000 00000000 00000000 00000000 01000000 00000000
15 32768 00000000 00000000 00000000 00000000 00000000 00000000 10000000 00000000
16 65536 00000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000
17 131072 00000000 00000000 00000000 00000000 00000000 00000010 00000000 00000000
18 262144 00000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000
19 524288 00000000 00000000 00000000 00000000 00000000 00001000 00000000 00000000
20 1048576 00000000 00000000 00000000 00000000 00000000 00010000 00000000 00000000
21 2097152 00000000 00000000 00000000 00000000 00000000 00100000 00000000 00000000
22 4194304 00000000 00000000 00000000 00000000 00000000 01000000 00000000 00000000
23 8388608 00000000 00000000 00000000 00000000 00000000 10000000 00000000 00000000
24 16777216 00000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000
25 33554432 00000000 00000000 00000000 00000000 00000010 00000000 00000000 00000000
26 67108864 00000000 00000000 00000000 00000000 00000100 00000000 00000000 00000000
27 134217728 00000000 00000000 00000000 00000000 00001000 00000000 00000000 00000000
28 268435456 00000000 00000000 00000000 00000000 00010000 00000000 00000000 00000000
29 536870912 00000000 00000000 00000000 00000000 00100000 00000000 00000000 00000000
30 1073741824 00000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000
31 2147483648 00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000
32 4294967296 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000000
33 8589934592 00000000 00000000 00000000 00000010 00000000 00000000 00000000 00000000
34 17179869184 00000000 00000000 00000000 00000100 00000000 00000000 00000000 00000000
35 34359738368 00000000 00000000 00000000 00001000 00000000 00000000 00000000 00000000
36 68719476736 00000000 00000000 00000000 00010000 00000000 00000000 00000000 00000000
37 137438953472 00000000 00000000 00000000 00100000 00000000 00000000 00000000 00000000
38 274877906944 00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000000
39 549755813888 00000000 00000000 00000000 10000000 00000000 00000000 00000000 00000000
40 1099511627776 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000000
41 2199023255552 00000000 00000000 00000010 00000000 00000000 00000000 00000000 00000000
42 4398046511104 00000000 00000000 00000100 00000000 00000000 00000000 00000000 00000000
43 8796093022208 00000000 00000000 00001000 00000000 00000000 00000000 00000000 00000000
44 17592186044416 00000000 00000000 00010000 00000000 00000000 00000000 00000000 00000000
45 35184372088832 00000000 00000000 00100000 00000000 00000000 00000000 00000000 00000000
46 70368744177664 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000000
47 140737488355328 00000000 00000000 10000000 00000000 00000000 00000000 00000000 00000000
48 281474976710656 00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000000
49 562949953421312 00000000 00000010 00000000 00000000 00000000 00000000 00000000 00000000
50 1125899906842624 00000000 00000100 00000000 00000000 00000000 00000000 00000000 00000000
51 2251799813685248 00000000 00001000 00000000 00000000 00000000 00000000 00000000 00000000
52 4503599627370496 00000000 00010000 00000000 00000000 00000000 00000000 00000000 00000000
53 9007199254740992 00000000 00100000 00000000 00000000 00000000 00000000 00000000 00000000
54 18014398509481984 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
55 36028797018963968 00000000 10000000 00000000 00000000 00000000 00000000 00000000 00000000
56 72057594037927936 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000
57 144115188075855872 00000010 00000000 00000000 00000000 00000000 00000000 00000000 00000000
58 288230376151711744 00000100 00000000 00000000 00000000 00000000 00000000 00000000 00000000
59 576460752303423488 00001000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
60 1152921504606846976 00010000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
61 2305843009213693952 00100000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
62 4611686018427387904 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
63 9223372036854775808 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

BITというのは実態は二進数ですが、バイト表記に変換できます。
1Byte=8Bitなのです。
ビットはよく通信速度をkBpsなどと表記しそれをKB/sに変換しますがそのときBitの通信速度を1/8するとKByte/sがでます。

ビット表その2

以下の表は10進数でいう0-255までを表したものです。

数字 二進数 数字 二進数 数字 二進数 数字 二進数 数字 二進数 数字 二進数 数字 二進数 数字 二進数
0 00000000 1 00000001 2 00000010 3 00000011 4 00000100 5 00000101 6 00000110 7 00000111
8 00001000 9 00001001 10 00001010 11 00001011 12 00001100 13 00001101 14 00001110 15 00001111
16 00010000 17 00010001 18 00010010 19 00010011 20 00010100 21 00010101 22 00010110 23 00010111
24 00011000 25 00011001 26 00011010 27 00011011 28 00011100 29 00011101 30 00011110 31 00011111
32 00100000 33 00100001 34 00100010 35 00100011 36 00100100 37 00100101 38 00100110 39 00100111
40 00101000 41 00101001 42 00101010 43 00101011 44 00101100 45 00101101 46 00101110 47 00101111
48 00110000 49 00110001 50 00110010 51 00110011 52 00110100 53 00110101 54 00110110 55 00110111
56 00111000 57 00111001 58 00111010 59 00111011 60 00111100 61 00111101 62 00111110 63 00111111
64 01000000 65 01000001 66 01000010 67 01000011 68 01000100 69 01000101 70 01000110 71 01000111
72 01001000 73 01001001 74 01001010 75 01001011 76 01001100 77 01001101 78 01001110 79 01001111
80 01010000 81 01010001 82 01010010 83 01010011 84 01010100 85 01010101 86 01010110 87 01010111
88 01011000 89 01011001 90 01011010 91 01011011 92 01011100 93 01011101 94 01011110 95 01011111
96 01100000 97 01100001 98 01100010 99 01100011 100 01100100 101 01100101 102 01100110 103 01100111
104 01101000 105 01101001 106 01101010 107 01101011 108 01101100 109 01101101 110 01101110 111 01101111
112 01110000 113 01110001 114 01110010 115 01110011 116 01110100 117 01110101 118 01110110 119 01110111
120 01111000 121 01111001 122 01111010 123 01111011 124 01111100 125 01111101 126 01111110 127 01111111
128 10000000 129 10000001 130 10000010 131 10000011 132 10000100 133 10000101 134 10000110 135 10000111
136 10001000 137 10001001 138 10001010 139 10001011 140 10001100 141 10001101 142 10001110 143 10001111
144 10010000 145 10010001 146 10010010 147 10010011 148 10010100 149 10010101 150 10010110 151 10010111
152 10011000 153 10011001 154 10011010 155 10011011 156 10011100 157 10011101 158 10011110 159 10011111
160 10100000 161 10100001 162 10100010 163 10100011 164 10100100 165 10100101 166 10100110 167 10100111
168 10101000 169 10101001 170 10101010 171 10101011 172 10101100 173 10101101 174 10101110 175 10101111
176 10110000 177 10110001 178 10110010 179 10110011 180 10110100 181 10110101 182 10110110 183 10110111
184 10111000 185 10111001 186 10111010 187 10111011 188 10111100 189 10111101 190 10111110 191 10111111
192 11000000 193 11000001 194 11000010 195 11000011 196 11000100 197 11000101 198 11000110 199 11000111
200 11001000 201 11001001 202 11001010 203 11001011 204 11001100 205 11001101 206 11001110 207 11001111
208 11010000 209 11010001 210 11010010 211 11010011 212 11010100 213 11010101 214 11010110 215 11010111
216 11011000 217 11011001 218 11011010 219 11011011 220 11011100 221 11011101 222 11011110 223 11011111
224 11100000 225 11100001 226 11100010 227 11100011 228 11100100 229 11100101 230 11100110 231 11100111
232 11101000 233 11101001 234 11101010 235 11101011 236 11101100 237 11101101 238 11101110 239 11101111
240 11110000 241 11110001 242 11110010 243 11110011 244 11110100 245 11110101 246 11110110 247 11110111
248 11111000 249 11111001 250 11111010 251 11111011 252 11111100 253 11111101 254 11111110 255 11111111

BIT演算子

AND

OR

XOR

NOT

tech/memo/bit.txt · 最終更新: 2011/09/15 01:59 (外部編集)
Copyright (c) 2011-, Secret Society Across, and etc. All Rights Reserved.
Driven by DokuWiki FreeBSD Recent changes RSS feed Valid CSS Valid XHTML 1.0