1.1.2 · Coding › How Computers Work
Intuition Badi idea (WHY yeh exist karta hai)
Computers binary (base-2 ) mein sochte hain, lekin binary humans ke liye painful hai: number 11111111 sirf 255 hai, phir bhi digits ki ek deewar hai. Hum ek aisa shorthand chahte hain jo human-readable bhi ho aur binary mein trivially convertible bhi. Trick yeh hai: ek aisa base chuno jo power of 2 ho.
8 = 2 3 → octal (base-8): ek octal digit = exactly 3 bits .
16 = 2 4 → hexadecimal (base-16): ek hex digit = exactly 4 bits .
Kyunki base ek power of 2 hai, binary se/binary mein conversion sirf bits ko group karna hai — koi division nahi, koi arithmetic nahi. Yahi poora reason hai in bases ke use hone ka.
Definition Positional number systems
Ek base-b system mein, digits ki ek string d n d n − 1 … d 1 d 0 ka matlab hai
value = ∑ i = 0 n d i ⋅ b i
jahan har digit satisfy karta hai 0 ≤ d i < b .
Binary (b = 2 ): digits { 0 , 1 } .
Octal (b = 8 ): digits { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } .
Hexadecimal (b = 16 ): digits { 0 , … , 9 , A , B , C , D , E , F } jahan ==A=10, B=11, C=12, D=13, E=14, F=15==.
Intuition WHY ek hex digit = 4 bits
Ek 4-bit binary number 0000 se 1111 tak range karta hai, yani 0 se 15 — yeh exactly woh 16 values hain jo ek hex digit hold kar sakta hai. Toh 4 bits ka ek group one-to-one ek hex digit pe map hota hai, groups ke beech koi carrying nahi . Same logic: 3 bits ka range 0 –7 = ek octal digit.
1101011 0 2 → hex
Step A — right se 4s mein group karo: 1101 0110.
Right se kyun? Kyunki place value leftward badhti hai; rightmost bit 2 0 hai, isliye powers aligned rakhne ke liye lowest group wahan se start hona chahiye.
Step B — har group convert karo: 110 1 2 = 8 + 4 + 1 = 13 = D ; 011 0 2 = 4 + 2 = 6 .
Answer: D 6 16 .
Decimal se check karo: D 6 = 13 ⋅ 16 + 6 = 208 + 6 = 214 . Aur 1101011 0 2 = 128 + 64 + 16 + 4 + 2 = 214 . ✓
Worked example 2) Same binary
1101011 0 2 → octal
Step A — right se 3s mein group karo: 11 010 110 → left pad karo → 011 010 110.
Pad kyun karo? Leftmost group ko 3 bits chahiye; missing high bits zeros hain.
Step B: 011 = 3 , 010 = 2 , 110 = 6 .
Answer: 32 6 8 .
Check: 32 6 8 = 3 ⋅ 64 + 2 ⋅ 8 + 6 = 192 + 16 + 6 = 214 . ✓ (Same number, teen notations.)
Worked example 3) Decimal
→ hex by repeated division: 70 0 10
16 se divide karo, remainders collect karo (yeh digits hain, least-significant pehle ):
700 ÷ 16 = 43 r 12 ( C )
43 ÷ 16 = 2 r 11 ( B )
2 ÷ 16 = 0 r 2
Remainders bottom-to-top padho: 2B C 16 .
Bottom-to-top kyun? Pehla remainder d 0 hai (units place); aakhri highest place hai.
Verify karo: 2 ⋅ 256 + 11 ⋅ 16 + 12 = 512 + 176 + 12 = 700 . ✓
→ binary instantly: 0x 2 B C
2 = 0010 , B = 1011 , C = 1100 → concatenate karo → 0010 1011 110 0 2 . Leading zero hatao: 101011110 0 2 .
Math kyun nahi chahiye? Har hex digit independently apne 4-bit block mein expand hota hai.
left se group karna
Kyun sahi lagta hai: Hum left-to-right padhte hain, toh left se grouping shuru karte hain.
Kyun galat hai: Place value rightmost bit (2 0 ) pe anchored hai. Left se grouping powers ko misalign kar deti hai aur har digit corrupt ho jaata hai.
Fix: Hamesha right se group karo; missing high bits ko 0 se pad karo.
Common mistake Division remainders ko top-to-bottom padhna
Kyun sahi lagta hai: Hum naturally remainders ki list usi order mein padhte hain jis order mein likhi.
Kyun galat hai: Pehla remainder units digit hai, aakhri most significant hai. Top-to-bottom number ko reverse kar deta hai.
Fix: Remainders bottom-to-top padho (last computed = leftmost digit).
Common mistake Hex letters ko unki alphabet position samajhna
Kyun sahi lagta hai: "A pehla letter hai, toh A = 1."
Kyun galat hai: Hex mein, letters 9 ke baad count karte rehte hain: A = 10 , 1 nahi.
Fix: A –F = 10 –15 yaad karo.
Common mistake Base label bhool jaana
10 likhna ambiguous hai: 1 0 2 = 2 , 1 0 8 = 8 , 1 0 16 = 16 . Fix: prefixes use karo — 0b1010 (binary), 0o12 (octal), 0x0A (hex).
Recall Feynman: 12-saal ke bacche ko explain karo
Imagine karo binary ek lamba zip-code hai sirf 0s aur 1s ka — super accurate lekin padhna thaka dene wala. Hexadecimal jaisa hai jaise un 4 0/1 lights ko pack karo ek symbol mein (0–9 phir A–F). Kyunki 16 exactly "chaar lights ki worth" possibilities hai, tum long zip-code aur short symbols ke beech sirf apni ungli 4 lights ek waqt mein slide karke swap kar sakte ho — koi maths nahi, sirf chopping. Octal same karta hai lekin 3 lights ek waqt mein chops karta hai. Computers inhe isliye use karte hain kyunki yeh binary ke under same hain, lekin human eyes ke liye kaafi aasaan hain.
Mnemonic Grouping sizes yaad rakho
"Oct‑3, Hex‑4." Octal 3 bits group karta hai; hex 4 bits group karta hai. (Octal = 8 = 2 3 → 3; Hex = 16 = 2 4 → 4.)
Memory addresses aur colors: 0xFF0000 (red), addresses jaise 0x7FFF — compact, byte-aligned (1 byte = 2 hex digits).
Bit masks aur flags: 0x0F clearly matlab "low 4 bits set."
File permissions (Unix): chmod 755 octal use karta hai kyunki permissions 3 bits ke groups mein aati hain (rwx).
Debugging: Memory dumps hex mein dikhaye jaate hain taaki har byte ek tidy 2-digit pair ho.
Binary represent karne ke liye hexadecimal ko decimal ke upar kyun prefer kiya jaata hai? Kyunki 16 = 2 4 , har hex digit exactly 4 bits se map hoti hai bina kisi arithmetic ke — conversion pure grouping hai.
Ek octal digit kitne bits represent karta hai, aur kyun? 3 bits, kyunki 8 = 2 3 isliye octal digits 0–7 range karte hain = exactly 3 bits ki values.
Hex digits A se F ki value kya hai? A=10, B=11, C=12, D=13, E=14, F=15.
1101 011 0 2 ko hex mein convert karo.D 6 (1101=13=D, 0110=6).
70 0 10 ko repeated division se hex mein convert karo.2 B C (remainders 12=C, 11=B, 2 — bottom-to-top padho).
Binary ko hex mein group karte waqt, kis side se group karte hain, aur kyun? Right se, kyunki place value rightmost bit (2 0 ) pe anchored hai.
Decimal→base-b division se remainders padhte waqt, kaun sa order? Bottom-to-top (last remainder most significant digit hai).
Base se repeated division digits kyun extract karta hai? N mod b units digit d 0 ke barabar hai; divide karne se yeh hat jaata hai toh next remainder next digit hai.
Prefixes 0b, 0o, 0x ka matlab kya hai? Krama se Binary, octal, hexadecimal literals.
0 x 2 B C ko binary mein instantly convert karo.2=0010, B=1011, C=1100 → 101011110 0 2 .
Binary number system — underlying base jise hex/octal abbreviate karta hai.
Positional notation and place value — master equation N = ∑ d i b i .
Bytes and memory addressing — kyun 2 hex digits = 1 byte.
Bitwise operations and masks — hex masks ko readable banata hai.
Unix file permissions (chmod) — octal practice mein.
ASCII and character encoding — code points hex mein dikhaye jaate hain.
Human unreadable long strings
Place value equation N=sum di b^i
Group bits, no arithmetic
Divide-remainder for decimal