Saturday, October 13, 2007

બાઈટોપીડીયા - ચીરાગ પટેલ

બાઈટોપીડીયા - ચીરાગ પટેલ Oct 13, 2007

આપણે ઘણીવાર એવું સાંભળ્યું હશે, કે મારી હાર્ડ ડ્રાઈવ (hard disc drive) 80GBની છે. તો આ 80જીબી વળી શી બલા છે? અહીં જી.બી. એટલે ગીગા બાઈટ (Giga Byte)નું મીતાક્ષરી સ્વરુપ. આમ, 80જીબી હાર્ડ ડ્રાઈવમાં 80ગીગા બાઈટ જેટલી માહીતીનો સંગ્રહ થઈ શકે. પ્રચલીત પધ્ધતી પ્રમાણે, 1KB એટલે 1 કીલો બાઈટમાં કુલ 1024 બાઈટ હોય! (1કીલો મીટરમાં 1000 મીટર હોય! આ વળી કેમનું થયું?) આમ થવાનું કારણ એ કે બાયનરી પધ્ધતીમાં 2ના ગુણાંકમાં ગણતરી થતી હોય છે. 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 = 1024 થાય! પ્રમાણમાપની આંતરરાષ્ટ્રીય સંસ્થા Systems International (SI)એ નક્કી કરેલાં ધારાધોરણ મુજબ 1KB એટલે 1000બાઈટ જ ગણવા અને પ્રચલીત 1KBને 1KiB (kibibyte) કહેવું એવું ઠરાવવામાં આવ્યું છે. પ્રચલીત ગણતરી મુજબ જોઈએ તો:

1KB = 1કીલો બાઈટ = 1024 બાઈટ = 2 exp 10 (2ની 10મી ઘાત, અર્થાત 2 * 2 * 2... એમ 10 વખત)
1MB = 1મેગા બાઈટ = 1024 * 1024 બાઈટ = 1048576 બાઈટ = 2 exp 20
1GB = 1 ગીગા બાઈટ = 1024 * 1024 * 1024 બાઈટ = 2 exp 30
1TB = 1 ટેરા બાઈટ = 1024 * 1024 * 1024 * 1024 બાઈટ = 2 exp 40
1PB = 1 પીટા બાઈટ = 1 ટેરા બાઈટ * 1024 બાઈટ = 2 exp 50
1EB = 1 એક્ઝા બાઈટ = 1 પીટા બાઈટ * 1024 બાઈટ = 2 exp 60
1ZB = 1 ઝેટ્ટા બાઈટ = 1 એક્ઝા બાઈટ * 1024 બાઈટ = 2 exp 70
1YB = 1 યોટ્ટા બાઈટ = 1 ઝેટ્ટા બાઈટ * 1024 બાઈટ = 2 exp 80

8 બીટનો 1 બાઈટ બને છે. હવે, 4 બીટના સમુહને 1 નીબલ (nibble) કહે છે. એક બાઈટની સંખ્યા લખવામાં સરળતા રહે એ માટે બે નીબલના ગ્રુપમાં તે સંખ્યા લખવામાં આવે છે. જેમ કે, 1011 1011b, 0011 1100b, વગેરે. સંખ્યાને લખવાની પ્રચલીત રીત છે તેને બાયનરીને બદલે હેક્ઝાડેસીમલમાં લખવી. હેક્ઝાડેસીમલમાં 0,1,2,3,4,5,6,7,8,9 સુધીનાં અંકો અને ત્યાર બાદ 10ને બદલે A(a), 11ને બદલે B(b), 12ને બદલે C(c), 13ને બદલે D(d), 14ને બદલે E(e), અને 15ને બદલે F(f) લખવામાં આવે છે. અને સંખ્યાને 0x(Zero-x)થી પ્રીફીક્સ કે h વડે પોસ્ટ્ફીક્સ કરવામાં આવે છે. ચાલો ત્યારે, થોડાં ઉદાહરણો કરીશું?

1011 1100b માં 1011b = 11(8+2+1) છે અને 1100b = 12(8+4) છે. હવે 11 એટલે B અને 12 એટલે C. આમ, 1011 1100b = 0xBC અથવા 0xbc અથવા bch. એને ડેસીમલમાં ફેરવીએ તો? એક નીબલમાં 0થી 15 સુધીની સંખ્યા દર્શાવી શકાય, એટલે કે કુલ 16 સંખ્યાઓ દર્શાવી શકાય છે.બાઈટમાંના ડાબી બાજુથી પહેલાં નીબલને 16 વડે ગુણો અને બીજા નીબલને તેમાં ઉમેરો, તો હેક્ઝાડેસીમલ સંખ્યા ડેસીમલ બની જશે! આપણાં ઉદાહરણમાં, 0xbc = 11 * 16 + 12 = 176 + 12 = 188. હેક્ઝાડેસીમલમાં એક બાઈટમાં દર્શાવાતી સહુથી નાની સંખ્યા = 0x00 = 0, અને સહુથી મોટી સંખ્યા = 0xFF = 255. કમ્પ્યુટરમાં કેલ્ક્યુલેટરની એપ્લીકેશનમાં તમે એનાં "View" મેન્યુમાંથી "Scientific" સીલેક્ટ કરો. તમે ડાબી બાજુ ઉપર તરફ રેડીયો બટન જોશો, જેમાં Hex - Dec - Oct - Bin છે. ડીફૉલ્ટ સીલેક્શન ડેસીમલ હોય છે. કોઈ પણ 0થી255 વચ્ચેની સંખ્યા લખીને હેક્ઝ કે બીન સીલેક્ટ કરી જુઓ. ગમ્યું? (હવે ખ્યાલ આવ્યો કે શા માટે એક બાઈટને 4બીટ એટલે કે એક નીબલના જોડકામાં લખવામાં આવે છે? અને એમાં પણ હેક્ઝાડેસીમલ કેમ સરળ પડે છે એ પણ ખ્યાલ આવ્યો?) ફરી ઉપરનું ઉદાહરણ લખીએ તો,

188 = 1011 1100b = 0xBC
0 = 0000 0000b = 0x00
255 = 1111 1111b = 0xFF

તમે કીબોર્ડ(keyboard)ને ધ્યાનથી જોયું હશે તો એમાં 0,1,2,...,9 અને A,B,...,Z તથા !,@,...,+ વગેરે જેવાં ચીહ્નો ધરાવતી કી હશે. શીફ્ટ કી, પેઈજ અપ, પેઈજ ડાઉન, વગેરે જેવી કી હશે. આ દરેક કીને એક ચોક્કસ બાઈટ સંખ્યા આપવામાં આવેલી છે. દા.ત.,
'0' = 0x30 = 48
'A' = 0x41 = 65
'a' = 0x61 = 97

આવા બાઈટકોડને આસ્કી(ASCII) કેરેક્ટર કહે છે. વધુ માહીતી માટે જુઓ: http://en.wikipedia.org/wiki/ASCII
જ્યારે જ્યારે કમ્પ્યુટરમાં કોઈ પણ માહીતીની આપ-લે થાય છે ત્યારે એ બાઈટ રુપે જ થાય છે; જેમ કે, કીબોર્ડથી સીપીયુ, સીપીયુથી મોનીટર, સીપીયુથી હાર્ડ ડીસ્ક ડ્રાઈવ, સીપીયુથી ઈંટરનેટ, વગેરે. તમે અત્યારે જે વાંચી રહ્યાં છો એ પણ બાઈટની જ આપ-લે છે.

આપણાં જે પ્રચલીત લખવાના ફૉંટ છે તે બધાં આસ્કી ફોંટ છે. એટલે કે, 0-255ની સંખ્યાને સાંકળે તેવાં ચોક્કસ કેરેક્ટર લખવામાં આવે છે. જે તે ફોંટ ઇંસ્ટોલ કરીએ એટલે વર્ડ જેવી એપ્લીકેશન એ ફોંટ પ્રમાણે સ્ક્રીન પર કેરેક્ટર દર્શાવે છે. આ બાબત સમજવા એક પ્રયોગ કરી જુઓ. વર્ડ ખોલીને અત્યારે જે ફોંટ હોય તે રાખીને એક વાક્ય લખો. પછી જુદાં-જુદાં ફોંટ સીલેક્ટ કરતાં જાઓ અને જુઓ કે એ પ્રમાણે સ્ક્રીન પર જે કેરેક્ટર દેખાય છે તેમાં કેવા ફેરફાર થાય છે? ( Control key દાબી રાખીને A દબાવો એટલે જે લખ્યું છે એ બધું સીલેક્ટ થશે અને પછી Format મેન્યુમાંથી Font સીલેક્ટ કરી, જે ડાયલોગ બૉક્ષ આવે તેમાં જુદાં-જુદાં ફોંટ સીલેક્ટ કરતાં જાઓ).

No comments: