XXIIVV

Binary numbers are a base 2 numeral system.

A binary number is a number expressed in the base-2 numeral system, which uses only two symbols: 0 and 1. Each digit is referred to as a bit. Because of its straightforward implementation in digital electronic circuitry using logic gates, the binary system is used by almost all modern computers and computer-based devices.

 
—Two of Leibniz's binary calculation examples

To explore binary logic, see Noton or Der Papiercomputer.

Basics

Finger Counting

PinkyRingMiddleIndexThumb
Value124816

Finger binary is a system for counting and displaying binary numbers on the fingers of one or more hands. It is possible to count from 0 to 31 using the fingers of a single hand. In the binary number system, each numerical digit has two possible states(0 or 1) and each successive digit represents an increasing power of two.

For example, the number 10 is expressed by folding the index and ring finger, the number 20 is expressed by folding the thumb and the middle finger.

Binary to Hexadecimal Conversion

Break down the binary value in chunks of 4, multiply each 1 by its equivalent value, either 8, 4, 2 or 1. Add the resulting numbers together to get the result. For example, the value 1100, or (8*1 + 4*1), is equal to C(decimal 12).

1101 0101(D5)
11010101Binary
1286432168421Values
128641641Result: 213

Rotate

Binary numbers are easy to multiply and divide by multiples of 2. Rotate one bit left to multiply by 2, and rotates one bit right to divide by 2.

2200010110
44ROL00101100
11ROR00001011

Hexadecimal to Binary Table

000004010081000C1100
100015010191001D1101
2001060110A1010E1110
3001170111B1011F1111

Arithmetic

Peasant Multiplication

In the first column, divide the first number by 2 by removing the last bit, until 1 is reached. In the second column, multiply by 2 by adding an extra bit of 0. The answer is found by adding the numbers in the second column with odd numbers in the first column. A binary number ending with 1 is odd.

This example multiplies 35 by 19, to arrive at a result of 665. The result 1010011001 can be deconstucted as:

10 1001 1001 = 1 + 8 + 16 + 128 + 512 = 665
3519
100011 10011
10001 100110
1000 1001100
100 10011000
10 100110000
11001100000
1010011001

Addition

inputADDoutputcarry
0110
0000
1101
1010

Subtraction

inputSUBoutputborrow
0111
0000
1100
1010

Multiplication

inputMULoutput
010
000
111
100

Logic

AND, or "both", sets individual bits to 0. AND is useful for masking bits, for example, to mask the high order bits of a value AND with $0F: $36 AND $0F = $06.

inputANDoutput
010
000
111
100

ORA(OR), or "either one or both", sets individual bits to 1. OR is useful for setting a particular bit, for example, $80 OR $08 = $88

inputORAoutput
011
000
111
101

EOR(XOR), or "one or the other but not both", inverts individual bits.

inputEORoutput
011
000
110
101

Signed Integers

If Bit 7 is not set (as in the first example) the representation of signed and unsigned numbers is the same. However, when Bit 7 is set, the number is always negative. For this reason Bit 7 is sometimes called the sign bit.

BinaryUnsignedSigned
0010 00113535
1010 0011163-93
1111 1111255-1
1000 0000128-128

Setting a bit

To activate the 1st, 2nd and 4th bits:

00001011
unsigned char num = 0;
num |= (1 << 0);
num |= (1 << 1);
num |= (1 << 3);

To deactivate the 1st, 4th and 6th bits:

11010110
unsigned char num = 255;
num &= ~(1 << 0);
num &= ~(1 << 3);
num &= ~(1 << 5);

To read value of bit:

(num >> bit) & 1;

Binary Table

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

incoming(3): nibble dice noton assembly