← Back to notes / āύ⧋āĻŸā§‡ āĻĢāĻŋāϰ⧁āύ

Chapter 3.1: Number System

Note by Siam Sir

1. Number System (āϏāĻ‚āĻ–ā§āϝāĻž āĻĒāĻĻā§āϧāϤāĻŋ)

Definition & Types

A Number System is a mathematical way to express numbers using a consistent set of symbols/digits. There are two main types:

  1. Non-Positional System: The value of a symbol does not depend on its position. E.g., Roman Numerals (X = 10 everywhere).
  2. Positional System: The value depends on the digit's position (place value), the base (radix), and the digit itself. E.g., Decimal, Binary.

Place Value: Weights increase to the left (Base0, Base1...) and decrease to the right (Base-1, Base-2...).

āϏāĻ‚āĻœā§āĻžāĻž āĻ“ āĻĒā§āϰāĻ•āĻžāϰāϭ⧇āĻĻ

āϏāĻ‚āĻ–ā§āϝāĻž āĻĒāĻĻā§āϧāϤāĻŋ āĻšāϞ⧋ āϕ⧋āύ⧋ āϏāĻ‚āĻ–ā§āϝāĻž āϞāĻŋāϖ⧇ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āϏ⧁āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āύāĻŋ⧟āĻŽāĨ¤ āĻāϟāĻŋ āĻĒā§āϰāϧāĻžāύāϤ āĻĻ⧁āχ āĻĒā§āϰāĻ•āĻžāϰ:

  1. āύāύ-āĻĒāϜāĻŋāĻļāύāĻžāϞ āĻĒāĻĻā§āϧāϤāĻŋ: āϝ⧇ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āĻ…āĻ™ā§āϕ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŽāĻžāύ āĻĨāĻžāϕ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϕ⧋āύ⧋ āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ (Place value) āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ āϝ⧇āĻŽāύ: āϰ⧋āĻŽāĻžāύ āϏāĻ‚āĻ–ā§āϝāĻžāĨ¤
  2. āĻĒāϜāĻŋāĻļāύāĻžāϞ āĻĒāĻĻā§āϧāϤāĻŋ: āϝ⧇ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āĻ…āĻ™ā§āϕ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŽāĻžāύ, āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ āĻāĻŦāĻ‚ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϰ (Base) āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻŽāĻžāύ āύāĻŋāĻ°ā§āϪ⧟ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āϝ⧇āĻŽāύ: āĻĄā§‡āϏāĻŋāĻŽā§‡āϞ, āĻŦāĻžāχāύāĻžāϰāĻŋ, āĻ…āĻ•ā§āϟāĻžāϞāĨ¤

āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ: āĻĒā§Ÿā§‡āĻ¨ā§āĻŸā§‡āϰ āĻŦāĻžāĻŽ āĻĻāĻŋāϕ⧇ āĻŽāĻžāύ āĻŦāĻžā§œā§‡ (Base0, Base1...) āĻāĻŦāĻ‚ āĻĄāĻžāύ āĻĻāĻŋāϕ⧇ āĻ•āĻŽā§‡ (Base-1, Base-2...)āĨ¤

Number System Examples

Positional / āĻĒāϜāĻŋāĻļāύāĻžāϞ

3436
↓↓↓↓
1000100101
101101
↓↓↓↓↓↓
32168421

Non-Positional / āύāύ-āĻĒāϜāĻŋāĻļāύāĻžāϞ

XXV = 10 + 10 + 5 = 25

|||| = 1 + 1 + 1 + 1 + 1 = 5

Positional vs Non-Positional (āĻĒāϜāĻŋāĻļāύāĻžāϞ āĻŦāύāĻžāĻŽ āύāύ-āĻĒāϜāĻŋāĻļāύāĻžāϞ)

Feature (āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ) Positional (āĻĒāϜāĻŋāĻļāύāĻžāϞ) Non-Positional (āύāύ-āĻĒāϜāĻŋāĻļāύāĻžāϞ)
Place Value (āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ) Digits have specific place values. (āĻ…āĻ™ā§āĻ•āϗ⧁āϞ⧋āϰ āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ āĻĨāĻžāϕ⧇āĨ¤) Symbols have NO place value. (āĻĒā§āϰāϤ⧀āĻ•āϗ⧁āϞ⧋āϰ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻŽāĻžāύ āύ⧇āχāĨ¤)
Base/Radix (āĻ­āĻŋāĻ¤ā§āϤāĻŋ) Has a fixed base (e.g., 2, 8, 10). (āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻŦāĻž āĻŦ⧇āϏ āĻĨāĻžāϕ⧇āĨ¤) Does not have a base. (āϕ⧋āύ⧋ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āύ⧇āχāĨ¤)
Zero (āĻļā§‚āĻ¨ā§āϝ) Zero (0) is essential. (āĻļā§‚āĻ¨ā§āϝ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāĻžāĻ§ā§āϝāϤāĻžāĻŽā§‚āϞāĻ•āĨ¤) Often lacks a zero symbol. (āϏāĻžāϧāĻžāϰāĻŖāϤ āĻļā§‚āĻ¨ā§āϝ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύ⧇āχāĨ¤)
Arithmetic (āĻ—āĻžāĻŖāĻŋāϤāĻŋāĻ• āĻ•āĻžāϜ) Addition/Subtraction is easy. (āϝ⧋āĻ—-āĻŦāĻŋā§Ÿā§‹āĻ— āĻ•āϰāĻž āϏāĻšāϜāĨ¤) Arithmetic is very difficult. (āĻ—āĻžāĻŖāĻŋāϤāĻŋāĻ• āĻ•āĻžāϜ āĻŦ⧇āĻļ āϜāϟāĻŋāϞāĨ¤)
Usage (āĻŦā§āϝāĻŦāĻšāĻžāϰ) Modern computers & math. (āφāϧ⧁āύāĻŋāĻ• āĻ—āĻŖāĻŋāϤ āĻ“ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤāĨ¤) Historical or ancient usage. (āĻĒā§āϰāĻžāĻšā§€āύāĻ•āĻžāϞ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϤ⧋āĨ¤)

Base Numbers & Place Values (āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ)

Positional Number System
āĻĒāϜāĻŋāĻļāύāĻžāϞ āϏāĻ‚āĻ–ā§āϝāĻž āĻĒāĻĻā§āϧāϤāĻŋ
Sign Number
āϚāĻŋāĻšā§āύ āϏāĻ‚āĻ–ā§āϝāĻž
Base Number
āĻ­āĻŋāĻ¤ā§āϤāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž
Place Values (āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ)
(Left to Right)
Decimal / āĻĻāĻļāĻŽāĻŋāĻ• 0 - 9 10 ... 104, 103, 102, 101, 100
Binary / āĻŦāĻžāχāύāĻžāϰāĻŋ 0, 1 2 ... 24, 23, 22, 21, 20
(... 16, 8, 4, 2, 1)
Octal / āĻ…āĻ•ā§āϟāĻžāϞ 0 - 7 8 ... 84, 83, 82, 81, 80
(... 4096, 512, 64, 8, 1)
Hexadecimal / āĻšā§‡āĻ•ā§āϏāĻžāĻĄā§‡āϏāĻŋāĻŽā§‡āϞ 0 - 9, A, B, C, D, E, F 16 ... 164, 163, 162, 161, 160
(... 65536, 4096, 256, 16, 1)

2. Addition and Subtraction (āϝ⧋āĻ— āĻ“ āĻŦāĻŋā§Ÿā§‹āĻ—)

Technique for Any Base

Addition: Add column by column. If sum ≥ Base, subtract Base from sum, write remainder, and carry 1 to next left column.

Subtraction: Subtract column by column. If top digit < bottom digit, borrow Base (add Base to top digit), subtract, and return 1 to next bottom digit.

āϝ⧇āϕ⧋āύ⧋ āĻŦ⧇āϏ⧇āϰ āύāĻŋ⧟āĻŽ

āϝ⧋āĻ—: āĻ•āϞāĻžāĻŽ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āϝ⧋āĻ—āĻĢāϞ āĻŦ⧇āϏ⧇āϰ āϏāĻŽāĻžāύ āĻŦāĻž āĻŦ⧜ āĻšāϞ⧇, āϤāĻž āĻĨ⧇āϕ⧇ āĻŦ⧇āϏ āĻŦāĻŋā§Ÿā§‹āĻ— āĻ•āϰ⧇ āύāĻŋāĻšā§‡ āĻŦāϏāĻžāύ āĻāĻŦāĻ‚ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ•āϞāĻžāĻŽā§‡ āĻšāĻžāϤ⧇ ā§§ (Carry 1) āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤

āĻŦāĻŋā§Ÿā§‹āĻ—: āωāĻĒāϰ⧇āϰ āĻ…āĻ™ā§āĻ• āϛ⧋āϟ āĻšāϞ⧇, āϤāĻžāϰ āϏāĻžāĻĨ⧇ āĻŦ⧇āϏ (Base) āϧāĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āĻŦāĻŋā§Ÿā§‹āĻ— āĻ•āϰāĻžāϰ āĻĒāϰ, āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ•āϞāĻžāĻŽā§‡āϰ āύāĻŋāĻšā§‡āϰ āĻ…āĻ™ā§āϕ⧇āϰ āϏāĻžāĻĨ⧇ āĻšāĻžāϤ⧇ āĻĨāĻžāĻ•āĻž ā§§ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤

Addition Examples (āϝ⧋āϗ⧇āϰ āωāĻĻāĻžāĻšāϰāĻŖ)
Decimal (Base-10)
Breakdown:
• 6 + 7 = 13
• 13 - 10 = 3 (Carry 1)
• 1 + 5 + 2 = 8
• 4 + 1 = 5
  4 5 6
+ 1 2 7
-------
  5 8 3
Octal (Base-8)
Breakdown:
• 6 + 7 = 13
• 13 - 8 = 5 (Carry 1)
• 1 + 5 + 2 = 8
• 8 - 8 = 0 (Carry 1)
• 1 + 4 + 1 = 6
  4 5 6
+ 1 2 7
-------
  6 0 5
Hexadecimal (Base-16)
Breakdown:
• 6 + 7 = 13 (D)
• A(10) + B(11) = 21
• 21 - 16 = 5 (Carry 1)
• 1 + 4 + 1 = 6
  4 A 6
+ 1 B 7
-------
  6 5 D
Binary (Base-2)
Breakdown:
• 1 + 0 = 1
• 1 + 1 = 2 → 2-2=0 (C:1)
• 1 + 0 + 1 = 2 → 2-2=0 (C:1)
• 1 + 1 = 2 → 2-2=0 (C:1)
  1 0 1 1
+ 0 1 1 0
---------
1 0 0 0 1
Subtraction Examples (āĻŦāĻŋā§Ÿā§‹āϗ⧇āϰ āωāĻĻāĻžāĻšāϰāĻŖ)
Decimal (Base-10)
Breakdown:
• 2 < 4 → (2+10) - 4 = 8
• Return 1 → 8 + 1 = 9
• 3 < 9 → (3+10) - 9 = 4
• Return 1 → 1 + 1 = 2
• 5 - 2 = 3
  5 3 2
- 1 8 4
-------
  3 4 8
Octal (Base-8)
Breakdown:
• 2 < 4 → (2+8) - 4 = 6
• Return 1 → 6 + 1 = 7
• 3 < 7 → (3+8) - 7 = 4
• Return 1 → 1 + 1 = 2
• 5 - 2 = 3
  5 3 2
- 1 6 4
-------
  3 4 6
Hexadecimal (Base-16)
Breakdown:
• 2 < 4 → (2+16) - 4 = 14(E)
• Return 1 → C(12) + 1 = 13
• A(10) < 13 → (10+16) - 13 = 13(D)
• Return 1 → 1 + 1 = 2
• 5 - 2 = 3
  5 A 2
- 1 C 4
-------
  3 D E
Binary (Base-2)
Breakdown:
• 1 - 0 = 1
• 0 < 1 → (0+2) - 1 = 1
• Return 1 → 1 + 1 = 2(10)
• 1 < 2 → (1+2) - 2 = 1
• Return 1 → 1 - 1 = 0
  1 1 0 1
- 0 1 1 0
---------
  0 1 1 1

3. Number Conversion (āϏāĻ‚āĻ–ā§āϝāĻž āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ)

💡 Rule 1: From Decimal to Any Base

Technique: Divide the integer and multiply the fraction by the targeted base number.

āĻ•ā§ŒāĻļāϞ: āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ‚āĻļāϕ⧇ āϟāĻžāĻ°ā§āϗ⧇āϟ āĻŦ⧇āϏ āĻĻāĻŋā§Ÿā§‡ āĻ­āĻžāĻ— āĻāĻŦāĻ‚ āĻ­āĻ—ā§āύāĻžāĻ‚āĻļāϕ⧇ āϟāĻžāĻ°ā§āϗ⧇āϟ āĻŦ⧇āϏ āĻĻāĻŋā§Ÿā§‡ āϗ⧁āĻŖ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤

1. (1650.35)10 into Octal-
8 1650
8 206 – 2
8 25 – 6
8 3 – 1
0 – 3
LSD
MSD
MSD
LSD
.35
× 8
2 .80
× 8
6 .40
× 8
3 .20
× 8
1 .60
= (3162.2631...)8
2. (428.34)10 into Hexadecimal-
16 428
16 26 – 12(C)
16 1 – 10(A)
0 – 1
LSD
MSD
MSD
LSD
.34
× 16
5 .44
× 16
7 .04
× 16
0 .64
× 16
10(A) .24
= (1AC.570A...)16
3. (25.125)10 into Binary-
2 25
2 12 – 1
2 6 – 0
2 3 – 0
2 1 – 1
0 – 1
LSD
MSD
MSD
LSD
.125
× 2
0 .250
× 2
0 .500
× 2
1 .000
= (11001.001)2

💡 Rule 2: From Any Base to Decimal

Technique: Multiply each digit by its place value and sum them up.

āĻ•ā§ŒāĻļāϞ: āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…āĻ™ā§āĻ•āϕ⧇ āϤāĻžāϰ āύāĻŋāϜ āĻŦ⧇āϏ⧇āϰ āĻ¸ā§āĻĨāĻžāĻ¨ā§€ā§Ÿ āĻŽāĻžāύ āĻĻāĻŋā§Ÿā§‡ āϗ⧁āĻŖ āĻ•āϰ⧇ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

(C97.3D)16 to Decimal-
  C × 162 + 9 × 161 + 7 × 160 + 3 × 16-1 + D × 16-2

= 3072 + 144 + 7 + (3/16) + (13/256)

= 3223 + 0.1875 + 0.05078

= (3223.238)10
(101.101)2 to Decimal-
  1 × 22 + 0 × 21 + 1 × 20 + 1 × 2-1 + 0 × 2-2 + 1 × 2-3

= 4 + 0 + 1 + (1/2) + 0 + (1/8)

= 5 + 0.5 + 0.125

= (5.625)10

💡 Rule 3: Conversion between Octal, Hexadecimal and Binary

Technique: Group binary bits to form digits, or expand digits into binary bits.

āĻ•ā§ŒāĻļāϞ: āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŦāĻŋāϟāϗ⧁āϞ⧋āϕ⧇ āĻ—ā§āϰ⧁āĻĒ āĻ•āϰ⧇ āĻ…āĻ™ā§āϕ⧇, āĻ…āĻĨāĻŦāĻž āĻ…āĻ™ā§āĻ•āϗ⧁āϞ⧋āϕ⧇ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŦāĻŋāĻŸā§‡ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤

1 Octal digit = 3 Binary bits

1 Hexadecimal digit = 4 Binary bits

Octal to Binary
(74)8 → (?)2
74
↓↓
111100
= (111100)2
Binary to Octal
(101101)2 → (?)8
101101
↓↓
55
= (55)8
Hexadecimal to Binary
(D5)16 → (?)2
D5
↓↓
11010101
= (11010101)2
Binary to Hexadecimal
(1101011)2 → (?)16
01101011
↓↓
6B
= (6B)16
Example: (9C.4D)16 to Octal-
9C.4D
↓↓↓↓
10011100.01001101
010011100.010011010
↓↓↓↓↓↓
234.232
= (234.232)8
8421
1001= 9
1100= C
0100= 4
1101= D
421
010= 2
011= 3
100= 4
Conversion Exercise:
1. (1853)10 → (?)16
161853
16115– 13(D)
167– 3
0– 7
LSD
MSD
= (73D)16
2. (572)8 → (?)10
  5 × 82 + 7 × 81 + 2 × 80
= (5 × 64) + (7 × 8) + (2 × 1)
= 320 + 56 + 2
= (378)10
3. (A6.B)16 → (?)8
A6.B
↓↓↓
10100110.1011
010100110.101100
↓↓↓↓↓
246.54
= (246.54)8
4. (53.2)8 → (?)2
53.2
↓↓↓
101011.010
= (101011.010)2

4. 2's Complement & Registers (⧍-āĻāϰ āĻĒāϰāĻŋāĻĒā§‚āϰāĻ•)

Register Size & Sign Bit

Inside a CPU, data is stored in registers (8-bit, 16-bit, 32-bit). In signed numbers, the Most Significant Bit (MSB) is the Sign Bit.

  • MSB = 0 → Positive Number (+)
  • MSB = 1 → Negative Number (-)

In an 8-bit register, 1 bit is for the sign, and 7 bits represent the Data Magnitude.

āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ āĻ“ āϏāĻžāχāύ āĻŦāĻŋāϟ

CPU-āĻāϰ āϭ⧇āϤāϰ⧇ āĻĄā§‡āϟāĻž āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ⧇ āϜāĻŽāĻž āĻĨāĻžāϕ⧇āĨ¤ āϚāĻŋāĻšā§āύāϝ⧁āĻ•ā§āϤ (Signed) āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦāĻžāĻŽā§‡āϰ āĻŦāĻŋāϟāϟāĻŋāϕ⧇ Sign Bit (āϚāĻŋāĻšā§āύ āĻŦāĻŋāϟ) āĻŦāϞ⧇āĨ¤

  • āϏāĻžāχāύ āĻŦāĻŋāϟ 0 āĻšāϞ⧇ → āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āϧāύāĻžāĻ¤ā§āĻŽāĻ• (+)
  • āϏāĻžāχāύ āĻŦāĻŋāϟ 1 āĻšāϞ⧇ → āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āĻ‹āĻŖāĻžāĻ¤ā§āĻŽāĻ• (-)

ā§Ž-āĻŦāĻŋāϟ āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ⧇ ā§§āϟāĻŋ āĻŦāĻŋāϟ āϚāĻŋāĻšā§āύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻŦāĻ‚ āĻŦāĻžāĻ•āĻŋ ā§­āϟāĻŋ āĻŦāĻŋāϟ āĻĄā§‡āϟāĻžāϰ āĻŽāĻžāύ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧇āĨ¤

Register Capacity / Range (āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ⧇āϰ āϧāĻžāϰāĻŖāĻ•ā§āώāĻŽāϤāĻž)

Register Type Formula Range (āϰ⧇āĻžā§āϜ)
8-bit Unsigned (āϚāĻŋāĻšā§āύāĻŦāĻŋāĻšā§€āύ) 0 to (28 - 1) 0 to 255
8-bit Signed (2's Comp) (āϚāĻŋāĻšā§āύāϝ⧁āĻ•ā§āϤ) -27 to +(27 - 1) -128 to +127
16-bit Unsigned 0 to (216 - 1) 0 to 65535
16-bit Signed (2's Comp) -215 to +(215 - 1) -32768 to +32767

Importance of 2's Complement (⧍-āĻāϰ āĻĒāϰāĻŋāĻĒā§‚āϰāϕ⧇āϰ āϗ⧁āϰ⧁āĻ¤ā§āĻŦ)

  • Addition and subtraction can be done with the same adder circuit.
  • Reduces hardware cost and complexity.
  • No ambiguity for zero (+0 and -0 are exactly the same).
  • Easier implementation of logic circuits.
  • Arithmetic operations are processed much faster.
  • āϝ⧋āĻ— āĻ“ āĻŦāĻŋā§Ÿā§‹āϗ⧇āϰ āĻ•āĻžāϜ āĻāĻ•āχ āϏāĻžāĻ°ā§āĻ•āĻŋāϟ (Adder) āĻĻāĻŋā§Ÿā§‡ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤
  • āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āĻ–āϰāϚ āĻ“ āϏāĻžāĻ°ā§āĻ•āĻŋāĻŸā§‡āϰ āϜāϟāĻŋāϞāϤāĻž āĻ•āĻŽā§‡āĨ¤
  • āĻļā§‚āĻ¨ā§āϝ⧇āϰ (+ā§Ļ āĻāĻŦāĻ‚ -ā§Ļ) āϜāĻ¨ā§āϝ āϕ⧋āύ⧋ āĻ­āĻŋāĻ¨ā§āύ āϰ⧂āĻĒ āĻŦāĻž āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤
  • āϞāϜāĻŋāĻ• āϏāĻžāĻ°ā§āĻ•āĻŋāϟ āϤ⧈āϰāĻŋ āĻ“ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžā§Ÿāύ āĻ…āύ⧇āĻ• āϏāĻšāϜ āĻšā§ŸāĨ¤
  • āĻ—āĻžāĻŖāĻŋāϤāĻŋāĻ• āĻ•āĻžāϜ āϖ⧁āĻŦ āĻĻā§āϰ⧁āϤ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšā§ŸāĨ¤
Subtraction Using Addition (⧍-āĻāϰ āĻĒāϰāĻŋāĻĒā§‚āϰāϕ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻŦāĻŋā§Ÿā§‹āĻ—)

💡 Rule / āύāĻŋ⧟āĻŽ

To do A - B, we actually do A + (2's complement of B).

A - B āĻ•āϰāϤ⧇ āĻšāϞ⧇, āĻŽā§‚āϞāϤ A + (B āĻāϰ ⧍-āĻāϰ āĻĒāϰāĻŋāĻĒā§‚āϰāĻ•) āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤

📝 Question Type / āĻĒā§āϰāĻļā§āύ⧇āϰ āϧāϰāύ:
Ques: Find the difference by using 2's complement method.
/ Find the difference by the process of addition.
/ Is it possible to find the difference between A and B the way computer does?
āĻĒā§āϰāĻļā§āύ: ⧍ āĻāϰ āĻĒāϰāĻŋāĻĒā§‚āϰāĻ• āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύāĻŋāĻ°ā§āϪ⧟ āĻ•āϰāĨ¤
/ āϝ⧋āϗ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύāĻŋāĻ°ā§āϪ⧟ āĻ•āϰāĨ¤
/ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āϝ⧇āχ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύāĻŋāĻ°ā§āϪ⧟ āĻ•āϰ⧇ āϤāĻžāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ A āĻ“ B āĻāϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύāĻŋāĻ°ā§āϪ⧟ āϏāĻŽā§āĻ­āĻŦ?

Step 1: Given values & Binary form

Given/āĻĻā§‡ā§ŸāĻž āφāϛ⧇, A = (60)10 and B = (50)16

(60)10 in 8 bit binary form / ā§Ž āĻŦāĻŋāĻŸā§‡ (60)10 āĻāϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŽāĻžāύ-
(60)10 = (00111100)2

(50)16 in 8 bit binary form / ā§Ž āĻŦāĻŋāĻŸā§‡ (50)16 āĻāϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŽāĻžāύ-
(50)16 = (01010000)2

Step 2: Compare & Formulate Equation

Here / āĻāĻ–āĻžāύ⧇, (50)16 > (60)10

To find the difference by addition process- / āϝ⧋āϗ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύāĻŋāĻ°ā§āĻŖā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ-
(50)16 - (60)10
(50)16 + (-60)10

Step 3: 2's Complement of Negative Number

Here, Binary value of (-60)10 can be obtained using 2's complement- / ⧍ āĻāϰ āĻĒāϰāĻŋāĻĒā§‚āϰāϕ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ (-60)10 āĻāϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŽāĻžāύ āύāĻŋāĻ°ā§āϪ⧟-

(+60)10 =00111100
1's complement11000011
+ 11
(-60)10 =11000100

Step 4: Final Addition & Result

Now / āĻāĻ–āύ,

(+50)16 =01010000
+ (-60)10 =11000100
Sum =100010100

Here, carry bit is not to be considered. / āĻāĻ–āĻžāύ⧇ āĻ•ā§āϝāĻžāϰāĻŋ āĻŦāĻŋāϟ āĻ—ā§āϰāĻšāĻŖāϝ⧋āĻ—ā§āϝ āύ⧟āĨ¤

Therefore, the result is (00010100)2 or (20)10 / āĻ…āϤāĻāĻŦ, āĻĢāϞāĻžāĻĢāϞ āĻšāϞ (00010100)2 āĻŦāĻž (20)10

5. Code (āϕ⧋āĻĄ)

Definition

Code is a system of representing data (numbers, letters, symbols) using a specific sequence of binary bits (0s and 1s) so a computer can process it.

āϕ⧋āĻĄā§‡āϰ āϏāĻ‚āĻœā§āĻžāĻž

āĻ…āĻ•ā§āώāϰ, āĻ…āĻ™ā§āĻ• āĻ“ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϚāĻŋāĻšā§āύāϕ⧇ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āĻŦā§‹āϧāĻ—āĻŽā§āϝ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŦāĻŋāϟ (0 āĻ“ 1) āĻĻāĻŋā§Ÿā§‡ āϝ⧇ āĻ…āĻĻā§āĻŦāĻŋāĻ¤ā§€ā§Ÿ āϏāĻ‚āϕ⧇āϤ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿ, āϤāĻžāϕ⧇ āϕ⧋āĻĄ (Code) āĻŦāϞ⧇āĨ¤

1. BCD (Binary Coded Decimal)

BCD strictly represents each decimal digit (0-9) with a 4-bit binary sequence. The most standard format is BCD 8421.

ā§§. āĻŦāĻŋāϏāĻŋāĻĄāĻŋ āϕ⧋āĻĄ (BCD)

āĻĄā§‡āϏāĻŋāĻŽā§‡āϞ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…āĻ™ā§āĻ•āϕ⧇ (ā§Ļ-⧝) āϏāĻŽāϤ⧁āĻ˛ā§āϝ ā§Ē-āĻŦāĻŋāϟ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻžāϕ⧇ BCD āϕ⧋āĻĄ āĻŦāϞ⧇āĨ¤ āĻāϟāĻŋ āϕ⧋āύ⧋ āϏāĻ‚āĻ–ā§āϝāĻž āĻĒāĻĻā§āϧāϤāĻŋ āύ⧟āĨ¤

Decimal BCD (8421) Decimal BCD (8421)
0000050101
1000160110
2001070111
3001181000
4010091001

2. EBCDIC
(Extended Binary Coded Decimal Interchange Code)

It is an 8-bit code (capable of 28 = 256 characters), mostly used in IBM mainframe computers.

⧍. āχāĻŦāĻŋāϏāĻŋāĻĄāĻŋāφāχāϏāĻŋ āϕ⧋āĻĄ
(Extended Binary Coded Decimal Interchange Code)

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ ā§Ž-āĻŦāĻŋāϟ āϕ⧋āĻĄ (āĻŽā§‹āϟ ⧍ā§Ģā§ŦāϟāĻŋ āϚāĻŋāĻšā§āύ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇), āϝāĻž āĻŽā§‚āϞāϤ IBM āĻŽā§‡āχāύāĻĢā§āϰ⧇āĻŽ āĻŦāĻž āĻŦ⧜ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

3. Alphanumeric Codes

Codes designed to represent alphabets (A-Z), numbers (0-9), and special characters (@, #, $).

ASCII
(American Standard Code for Information Interchange)

  • ASCII-7: 7 bits (27 = 128 characters).
  • ASCII-8: 8 bits (28 = 256 characters).
'A' = Dec 65 = Bin 1000001
'a' = Dec 97 = Bin 1100001

Unicode
(Universal Character Set / Universal Code)

Supports all world languages.

  • Standardized as 16-bit (65,536 chars).
  • UTF-8: Variable (1 to 4 bytes).
'āĻ…' = Dec 2437 = Bin 100110000101
'āĻ•' = Dec 2453 = Bin 100110010101

ā§Š. āφāϞāĻĢāĻžāύāĻŋāωāĻŽā§‡āϰāĻŋāĻ• āϕ⧋āĻĄ

āĻ…āĻ•ā§āώāϰ (A-Z), āϏāĻ‚āĻ–ā§āϝāĻž (0-9) āĻāĻŦāĻ‚ āĻ—āĻžāĻŖāĻŋāϤāĻŋāĻ• āϚāĻŋāĻšā§āύ⧇āϰ āϏāĻŽāĻ¨ā§āĻŦā§Ÿā§‡ āϤ⧈āϰāĻŋ āϕ⧋āĻĄāĨ¤

āĻ…ā§āϝāĻžāϏāĻ•āĻŋ
(American Standard Code for Information Interchange)

  • ASCII-7: ā§­ āĻŦāĻŋāϟ (āĻŽā§‹āϟ ā§§ā§¨ā§ŽāϟāĻŋ āϚāĻŋāĻšā§āύ)āĨ¤
  • ASCII-8: ā§Ž āĻŦāĻŋāϟ (āĻŽā§‹āϟ ⧍ā§Ģā§ŦāϟāĻŋ āϚāĻŋāĻšā§āύ)āĨ¤
'A' = āĻĄā§‡āϏāĻŋāĻŽā§‡āϞ 65 = āĻŦāĻžāχāύāĻžāϰāĻŋ 1000001
'a' = āĻĄā§‡āϏāĻŋāĻŽā§‡āϞ 97 = āĻŦāĻžāχāύāĻžāϰāĻŋ 1100001

āχāωāύāĻŋāϕ⧋āĻĄ
(Universal Character Set / Universal Code)

āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āϏāĻ•āϞ āĻ­āĻžāώāĻžāϕ⧇ āϕ⧋āĻĄāϭ⧁āĻ•ā§āϤ āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽāĨ¤

  • āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ ā§§ā§Ŧ-āĻŦāĻŋāϟ (āĻŽā§‹āϟ ā§Ŧā§Ģ,ā§Ģā§Šā§ŦāϟāĻŋ āϚāĻŋāĻšā§āύ)āĨ¤
  • UTF-8: ā§§ āĻĨ⧇āϕ⧇ ā§Ē āĻŦāĻžāχāϟ āĻŽā§‡āĻŽāϰāĻŋ āĻ¨ā§‡ā§ŸāĨ¤
'āĻ…' = āĻĄā§‡āϏāĻŋāĻŽā§‡āϞ 2437 = āĻŦāĻžāχāύāĻžāϰāĻŋ 100110000101
'āĻ•' = āĻĄā§‡āϏāĻŋāĻŽā§‡āϞ 2453 = āĻŦāĻžāχāύāĻžāϰāĻŋ 100110010101

ASCII vs Unicode (āĻ…ā§āϝāĻžāϏāĻ•āĻŋ āĻŦāύāĻžāĻŽ āχāωāύāĻŋāϕ⧋āĻĄ)

Feature (āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ) ASCII (āĻ…ā§āϝāĻžāϏāĻ•āĻŋ) Unicode (āχāωāύāĻŋāϕ⧋āĻĄ)
Bit Size (āĻŦāĻŋāĻŸā§‡āϰ āϏāĻ‚āĻ–ā§āϝāĻž) Usually 7 or 8 bits. (āϏāĻžāϧāĻžāϰāĻŖāϤ ā§­ āĻŦāĻž ā§Ž āĻŦāĻŋāĻŸā§‡āϰ āĻšā§ŸāĨ¤) 16 bits to 32 bits. (ā§§ā§Ŧ āĻĨ⧇āϕ⧇ ā§Šā§¨ āĻŦāĻŋāĻŸā§‡āϰ āĻšā§ŸāĨ¤)
Capacity (āϧāĻžāϰāĻŖāĻ•ā§āώāĻŽāϤāĻž) Can represent 128 or 256 characters. (ā§§ā§¨ā§Ž āĻŦāĻž ⧍ā§Ģā§ŦāϟāĻŋ āϚāĻŋāĻšā§āύ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤) Can represent 65,536+ characters. (ā§Ŧā§Ģ,ā§Ģā§Šā§Ŧ āĻŦāĻž āϤāĻžāϰ āĻ…āϧāĻŋāĻ• āϚāĻŋāĻšā§āύ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤)
Language (āĻ­āĻžāώāĻž āϏāĻŽāĻ°ā§āĻĨāύ) Supports only English. (āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āχāĻ‚āϰ⧇āϜāĻŋ āĻ­āĻžāώāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤) Supports all languages of the world. (āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āϏāĻ•āϞ āĻ­āĻžāώāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤)
Memory (āĻŽā§‡āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ) Requires 1 byte per character. (āĻĒā§āϰāϤāĻŋ āĻ…āĻ•ā§āώāϰ⧇āϰ āϜāĻ¨ā§āϝ ā§§ āĻŦāĻžāχāϟ āϜāĻžā§ŸāĻ—āĻž āĻ¨ā§‡ā§ŸāĨ¤) Requires 2 to 4 bytes per character. (⧍ āĻĨ⧇āϕ⧇ ā§Ē āĻŦāĻžāχāϟ āϜāĻžā§ŸāĻ—āĻž āĻ¨ā§‡ā§ŸāĨ¤)
Usage (āĻŦā§āϝāĻŦāĻšāĻžāϰ) Older systems and basic text files. (āĻĒ⧁āϰ⧋āύ⧋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ“ āĻŦ⧇āϏāĻŋāĻ• āĻŸā§‡āĻ•ā§āϏāĻŸā§‡ āĻŦā§āϝāĻŦāĻšā§ƒāϤāĨ¤) Modern OS, Websites, and global software. (āφāϧ⧁āύāĻŋāĻ• āĻ“āĻāϏ āĻāĻŦāĻ‚ āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāĻŸā§‡ āĻŦā§āϝāĻŦāĻšā§ƒāϤāĨ¤)

MCQ Practice (Set A)

MCQ Practice (Set B)

MCQ Practice (Set C)

MCQ Practice (Set D)