පරිගණකයක දත්ත නිරූපණය
මන් අද කතා කරන්න යන්නෙ ගොඩක් අය අමාරුයි කියල හිතන් ඉන්න මේ 1's compliment සහ 2's compliment නැත්තන් පලමු අනුපූරක ක්රමය සහ දෙවන අනුපූරක සංඛ්යාංක ක්රමය ගැන!
පරිගණකය කියන්නෙ යන්ත්රයක්නෙ...ඉතින් අපිට වගේ එයාලට 10 පාදයේ සංක්යා වලින් ගනින්න බෑ..ඒ නිසා එයාල ධන සංක්යා රින සංක්යා එකතු කිරීම අඩුකීරීම වගේ දේවල් කරන්නෙ binary (ද්විමය) සංක්යා වලින්..
අපි පොඩ්ඩක් ඒ ගැන බලමු කොහොමද වෙන්නෙ කියලා ???
මේක ඔයාල ගොඩක් හිතන්න ගියොතින් පැටලෙනව ඒ නිසා කෙටියෙන් මන් පැහැදිලි කරන්නම්
ප්රධානවශයෙන් මෙහි ක්රම දෙකක් තියෙනවා
- පලමු අනුපූරක ක්රමය (1's compliment)
- දෙවන අනුපූරක ක්රමය(2's compliment)
පලමු අනුපූරක ක්රමය (1's compliment)
මේ ක්රමයෙදි අපි ධන සංඛ්යා හා රින සංඛ්යා නිරූපනය වන විදිය පොඩ්ඩක් බලමු..මේක මතක තියගන්න එක ගොඩක් වැදගත් !
ධන සංඛ්යා - මෙකෙදි අපි සාමන්ය ද්වීමය සංඛ්යාවක් විදියටම තමයි ලියන්නෙ
උදාහරණ - 25= 00011001 (8 bits)
10= 00001010(8 bits)
ඍණ සංඛ්යා - මේකෙදි අපි කරන්නෙ සාමාන්ය ද්වීමය සංඛ්යාවක් විදියට ලියල සෑම බිටුවක්ම ප්රතිවිරුද්ද
බිටුවට හරවන එක.
ඒ කියන්නෙ අපි සාමන්ය විදියට ද්වීමය සංඛ්යාව ලියල එකෙ 0 තියෙනතැනට 1 ත් ,
1 තියෙන තැනට 0 ත් එන විදියට ලියන එකයී..
මේ උදාහරණෙන් ඔයාලට තේරෙයි ඒක
ඒ කියන්නෙ ( -25) පලමු අනුපූරක භාවිතයෙන් ලියන්න කිව්වහම අපි ලියන්න් ඕන මෙහෙම
25 = 00011001 * (සාමාන්ය ද්විමය විදියටම ලියල ඒක අනික් පැත්ත හරවන්න තියෙන්නෙ )*
( -25) = 11100110
මෙතනදි අපි දැනගන්න ඕන විශේශ කාරනයක් තමයි පලමු අනුපූරකෙන් නිරූපනය වන අවස්තාවලදී
sign bit ද්විමය සංඛ්යාවේ අවසාන බිටුවේ පිහිටීම ,
- මෙය 0 නම් ධන සංඛ්යාවක් වන අතර
- මෙය 1 නම් ඍන සංඛ්යාවක් වේ ..
note
බිටු 8හි පලමු අනුපූරක විශාලම සංඛ්යාව = 127 (01111111)
බිටු 8හි පලමු අනුපූරක කුඩාම සංඛ්යාව = -127(10000000)
පලමු අනුපූරක ක්රමයේ නම් මේ ටික දැන ගත්තහම හොදටම ඇති ..
අපි බලමු සාමනයයෙන් මේ වගේ එකකින් ගනන් එන්නෙ කොහොමද කියල ??
*පහත සංඛ්යා බිටු 8 හි පලමු අනුපූරක ආකාරයෙන් ලියා දක්වන්න .
- 42 = 00101010
- 42 = 11010101
- -64=10111111
- 0=00000000
- -126=10000001
*පහත පලමු නුපූරක නිරූපනයන් වල දශමක අගයන් සොයන්න
- 01011001=89
- 11110000=(-15)
- 11101011=(-20)
- 11111111=0
- 00010000=+16
*පහත සංඛ්යා අංක ගනිතමය ආකාරයෙන් සුලු කරන්න