કમ્પ્યુટરની અંકપધ્ધતી – ચીરાગ પટેલ Sep 30, 2007
આદરણીય જુગલકાકાએ મને કમ્પ્યુટર ક્ષેત્રે કાંઈક લખવા માટે પ્રેરકબળ પુરું પાડ્યું. એવું કાંઈક કે જે પાયાની માહીતી આપીને સામાન્ય વાચકને કમ્પ્યુટરનો ઉપયોગ કરવા માટે મજબુર કરી દે. આમ તો ઘણા સમયથી મારે C++ ભાષા (પ્રોગ્રામીંગની ભાષા) વીશે ગુજરાતીમાં લખવું શરું કરવું હતું, પરંતુ જુગલકાકાની વાતે મને એક નવી જ દીશા સુઝાડી! અને આ બ્લોગ તમારી સમક્ષ હાજર છે! તો હવે પડદો ઉંચકાય છે…
સૌપ્રથમ કમ્પ્યુટરનો અર્થ છે તે સમજીએ. કમ્પ્યુટરનો સરળ અર્થ છે: ગણતરી કરતું યંત્ર! પરંતું, કમ્પ્યુટર માત્ર ગણતરી કરીને અટકી જવાને બદલે આપણી સમક્ષ એક અવનવી દુનીયા ખડી કરી દે છે (મેટ્રીક્સ મુવીમાં દર્શાવ્યા મુજબ જ સ્તો!). માત્ર ગણતરી જ કરવી હતી તો ‘કેલ્ક્યુલેટર‘ છે જ ને. જો કે, કમ્પ્યુટર જે પણ કામ કરતું હોય, અંતે તો કરે છે ગણતરી જ (નામ પ્રમાણે કામ તો કરવું જ પડે ભાઈ). તો ચાલો, કમ્પ્યુટર એવું તો શું અને વળી કેવી રીતે ગણે છે તેની સમજુતી જોઈએ.
આપણે ગુજરાતીઓ ગણતરીમાં પાકાં કહેવાઈએ છીએ (કઈ, એ તો સહુ સમજીએ જ છીએ!). તો મને કહો, દશઅંકી (decimel) પધ્ધતી એટલે શું? (સુરેશદાદા વઢશે: લ્યા છોકરા, મશ્કરી કરે છે?) દશઅંકી પધ્ધતી ભારતે દુનીયાને આપેલી મહાનતમ ભેટ છે. કોઈ પણ સંખ્યાને 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 એમ કુલ દશ અંકો વડે દર્શાવવી એટલે દશઅંકી પધ્ધતી વાપરી એમ કહેવાય! (ભાઈ, દશઅંકી પધ્ધતી અને 10 જ ગાયબ થઈ ગયો? ના, 10 એટલે 0 અને 1 વડે બનતી સંખ્યા. એમ કાંઇ અમે કોઈને ખોટું લાગવા દઈએ?)
આ જ રીતે, કમ્પ્યુટર પોતાની ભાષામાં દ્વીઅંકી (binary) પધ્ધતીનો ઉપયોગ કરે છે. (બોલો ચતુરસુજાણો, દ્વીઅંકી પધ્ધતી એટલે શું?) (હવે ટપારવાનો વારો જુ.કાકાનો: ચીરાગ તમે અમને રસક્ષતી કરવાને બદલે, ભાષાને વહેવા દો અને અમને આકંઠ પાન કરવા દો.) એટલે કમ્પ્યુટર પોતાને માટે 0 અને 1 નો ઉપયોગ કરીને દરેક સંખ્યા બનાવે છે! (માથું ખંજવાળવું પડશે એવું લાગે છે? માફ કરજો. કમ્પ્યુટરનો 0 અને 1 માટેનો પ્રેમ આપણને કેવા નાચ નચાવે છે, નહીં?)
દરેક દશઅંકી સંખ્યાને દ્વીઅંકીમાં રુપાંતરીત કરવા તમને એક સાદો નીયમ જણાવું. 8-4-2-1 નો નીયમ. 0થી 15 સુધીની કોઈ પણ એક સંખ્યા ધારો. દા.ત., 12. હવે 8-4-2-1 નો ઉપયોગ કરીને 12 કેવી રીતે બને? 8+4 = 12. ઠીક? હવે, આપણે 12 બનાવવા માટે 8-4-2-1માંથી જે સ્થાન વાપર્યા હોય તેને બદલે 1 મુકો અને જે ના વાપર્યા હોય તેને સ્થાને 0 મુકો. શું બન્યું? 1-1-0-0 (8-4-2-1 નો ક્રમ જાળવવો અગત્યનો છે.). એટલે 12 (જે દશઅંકી છે)ને દ્વીઅંકીમાં 1100 કહેવાય. 1100ની સાથે ‘b’નું છોગું લગાવી દો એટલે કોઈ ગુંચવાડો ઉભો ના થાય. (નહીંતર, ગુજરાતીઓ ગભરાઈ જશે કે, માળું મેં 12રુપીયા આપ્યા હોય તેના 1100 થઈ ગયા?) આમ, 12 = 1100b. ચાલો જોઉં, હવે થોડી પ્રેક્ટીસ કરો. 0થી 15 સુધીની બધી દશઅંકી સંખ્યાને દ્વીઅંકીમાં ફેરવો. (સુ.દાદા: ઠીક ભાઈ, હવે 15થી મોટી સંખ્યાને દ્વીઅંકીમાં કેવી રીતે ફેરવું?) 8ના બમણા કરીએ તો શું મળે? શાબાશ, 16. તો હવે, 0થી 31 સુધીની દશઅંકી સંખ્યાને દ્વીઅંકીમાં ફેરવવા 16-8-4-2-1નો નીયમ લગાવો. 16-8-4-2-1 વડે દર્શાવાતી મોટામાં મોટી સંખ્યા જાણવી હોય તો કરો સરવાળો: 16+8+4+2+1=31!
દ્વીઅંકી સંખ્યાને દશઅંકીમાં ફેરવવા માટે પણ આ જ નીયમનો ઉપયોગ કરો. દા.ત., 10110b = 16+4+2 = 22. આમ, કોઈ પણ મોટી સંખ્યાને આપણે દ્વીઅંકીમાં ફેરવી નાંખીએ. અથવા દ્વીઅંકી સંખ્યાને દશઅંકી સંખ્યામાં. હવે કમ્પ્યુટરની ભાષામાં દરેક અંકને બીટ (bit) કહે છે. અને 8 બીટને 1 બાઈટ (byte) કહે છે. થોડી વાર માથું ખંજવાળી નાંખો અને મને એ કહો કે 1 બાઈટવડે લખાતી મોટામાં મોટી સંખ્યા કઈ? ધત્ત, 1111 1111b! (પ્રશ્નમાં એવું થોડું કહ્યું કે દશઅંકી સંખ્યા કહો?) નોંધ્યું? 4 બીટનાં ગ્રુપ બનાવીને સંખ્યા લખવામાં આવે છે કે જેથી કોઈ લોસ્મોચો ના થાય!. એમ ત્યારે, બોલો જોઉં, 1 બાઈટ વડે લખાતી મોટામાં મોટી દશઅંકી સંખ્યા કઈ? હમમમ… 128-64-32-16 8-4-2-1 નો નીયમ લાગુ પડ્યો! કેલ્ક્યુલેટર લેવું પડશે? (હા, જો અમેરીકામાં સ્કુલ કરી હોત તો. પણ, આપણે તો રહ્યાં દેશી!) 128+64+32+16+8+4+2+1 = 255! આમ, એક બાઈટ વડે 0થી લઈને 255 સુધીની કોઈ પણ દશઅંકી સંખ્યા લખી શકાય.
આ જ નીયમને વીસ્તારતા જઈએ તો જણાશે કે, 2 બાઈટ વડે 256 * 256 = 65536 (ઓછા 1) થાય, એટલે 0થી 65535 સુધીની સંખ્યા દર્શાવી શકાય. 4 બાઈટ વડે? રહેવા દો હવે…
કમ્પ્યુટર પોતાના કોઈ પણ કામકાજ માટે આ બાઈટરુપી કક્કાનો ઉપયોગ કરે છે. પછી એ દ્રશ્ય હોય કે લખાણ, મેમરીનો સંગ્રહ કરવાનો હોય કે પ્રીંટર પણ લખાણ છાપવાનું હોય! અને ઈંટરનેટ પર આટલો બધો માહીતીનો ધોધ વહે છે તે પણ 0 અને 1નો જ ઉપયોગ કરીને. કઈ રીતે? શું આજે જ બધું ભણી લેવું છે? આવતા અઠવાડીયાની રાહ જુઓને?
(સુરેશદાદા, જુગલકાકા; કાંઈ પણ અવીનય કર્યો હોય તે બદલ ક્ષમા)
October 1, 2007 at 12:44 am
બહુ જ આનંદ થયો – તારા આ પ્રયત્નથી. ખાસ કરીને જે લોકો આ વીશયમાં કાંઈ પણ જાણતા નથી, તેમને જરુર ફાયદો થશે. મારા બહુ જ પ્રીય વીશયોમાંનો એક, એટલે કોમ્પ્યુટર પ્રોગામીંગ, એટલે મને આનંદ થાય તે સ્વાભાવીક છે.
એક સુચન – જે શબ્દો ગુજરાતીમાં રુઢ થયેલા ન હોય તે શબ્દો અંગ્રેજીના જ લેવા સારા. ભાશા તેનાથી સમૃદ્ધ થશે.
મારાં અંતરનાં આશીશ.
October 1, 2007 at 12:45 am
એબેકસ પર રોમન લોકો કઈ રીતે ગણતરી કરતા હતા તે પણ એક સરસ વીશય છે.
October 1, 2007 at 12:46 am
some more examples:
0010 1101b = 45
0000 1101b = 13
1010 1010b = 170
October 1, 2007 at 12:47 am
એક બીજું સુચન, રહી રહીને યાદ આવ્યું.
આ વીશયને લગતી વેબ સાઈટોની માહીતી આપતું એક જુદું જ પાનું બનાવે તો? જેને વધુ અભ્યાસ કરવો હોય તેને કામ લાગે.
October 1, 2007 at 1:21 am
નવા ક્ષેત્રે તમને સૌ શુભેચ્છાઓ અને ભવીષ્યે સૌને થનારા લાભની આગોતરી વધાઈ !!
આટલી તમન્ના અને ઉપયોગી થવાની તીવ્ર ભાવના આપણ સહુ માટે પ્રેરણાદાયી છે. ઈશ્વર અને વીજ્ઞાન, બંનેના તમારા પર આશીર્વાદ ઉતરો.
October 1, 2007 at 2:31 am
ખુબ સરસ અને સરળ રજુઆત. કમ્પ્યુટર જેવા વીશાળ ક્ષેત્રમાં વાચકોના માર્ગદર્શન માટે ટેકનીકલ બાબતોની જાણકારી આપવાની અત્યંત આવશ્યકતા છે. અભીનંદન. મારું એક સુચન છે..કમ્પ્યુટરને લગતા પ્રશ્નો મારા જેવો કોઈ પુછે અને તેના તમે જવાબો આપો તેવો વીભાગ શરુ કરો.
October 1, 2007 at 4:17 am
Congratulations……
All the best
it must guide all ……….
October 1, 2007 at 4:18 am
exellent work
i am with u friend
if u want any kind of help i am with u
October 1, 2007 at 5:44 pm
ઘણું સ્તુત્ય અને પ્રશંસનિય પગલું છે આપનું ચિરાગભાઇ !!
ખૂબ જ અભિનંદન આપના “વીજાંશ” માટે..
મારે લાયક કોઇ કામ હોય તો નિઃશંક જણાવજો..
ઇમેઇલઃ patel.nikul@gmail.com
~નિકુલ
October 2, 2007 at 6:52 pm
It always helps to share your knowledge. Chiragbhai, all the best.
A little teaser, based on this week’s lesson:
“There are 10 types of people in the world: those who understand binary, and those who don’t!”
October 4, 2007 at 10:59 pm
Added information: Bit = BInary digiT
October 14, 2007 at 6:51 am
Well-done Chirag! Keep it up.
October 14, 2007 at 2:58 pm
Chiragbhai-I learnt one thing–Stay away from computers-Just use it-Dont try to understand the science-and when ever I have a problem call Sudip(my BhaNo)-Now I got another name-Chirag Patel.
In my book you are D,Lit.-Dr.Chirag Patel.