Variable

Programming ကို စေလ့လာေတာ့မယ္ဆိုရင္ ပထမဆံုး သိဖို႕လိုတာကေတာ့ variable ပါပဲ။ variable ဆိုတာကေတာ့ data ေတြကို ခဏတာ memory ေပၚမွာ သိမ္းထားေပးတဲ့ ေနရာေပါ့။ variable ကို နာမည္ေပးဖို႕ လိုပါတယ္။ ဒါ့အျပင္ variable အမ်ဳိးအစား သတ္မွတ္ေပးဖို႕လည္း လိုအပ္ပါတယ္။

print("Hello World!")

အထက္ပါ code မွာ ဘာ variable မွ မပါပါဘူး။

counter = 100 # An integer assignment miles = 1000.0 # A floating point name = "John" # A string boolean = True # Boolean Value True and False only print (counter) print (miles) print (name) print(boolean)

ဒီ code ေလးမွာ ဆိုရင္ေတာ့ variable ၃ ခု ပါတာကို ေတြ႕ပါလိမ့္မယ္။

counter ကေတာ့ integer ပါ။ Integer ဆိုတာကေတာ့ ဒႆမ မပါတဲ့ ကိန္းျပည့္ တန္ဖိုး ေတြကို ဆိုတာပါ။

miles ကေတာ့ floating ပါ။ ဒႆမ တန္ဖိုး ေတြေပါ့။

name ကေတာ့ String ပါ။ စာလံုး စာေၾကာင္းေတြ အတြက္ပါ။

boolean ကေတာ့ Boolean ပါ။ True နဲ႔ False value ပဲ ရွိပါတယ္။ True , False ေတြကို ေနာက္ပိုင္းမွာ condition ေတြ နဲ႔ တြဲသံုးတာကို ေတြ႕ ရပါလိမ့္မယ္။

print ကေတာ့ value ကို ျပန္ၿပီး ထုတ္ထားေပးတာပါ။

variable ေတြကို နာမည္ေပးရမွာ သက္ဆိုင္ရာ နာမည္ေတြ ေပးရပါတယ္။ x , y ,z ဆိုၿပီး ေပးမည့္ အစား ဒီ တန္ဖိုးကေတာ့ counter ျဖစ္ပါတယ္။ ဒီ တန္ဖိုးကေတာ့ miles ျဖစ္ပါတယ္။ ဒီ စာ ကေတာ့ name ျဖစ္ပါတယ္ ဆိုၿပီး variable name ကို ေပးလိုက္တဲ့ အတြက္ ဖတ္လိုက္တာနဲ႕ သေဘာေပါက္လြယ္သြားပါတယ္။

Bit and Storage Data on Memory

Variable က memory ေပၚမွာ ေနရာ ယူၿပီး ခဏ သိမ္းထားပါတယ္။ program ပိတ္လိုက္တဲ့ အခါမွာ memory ေပၚကေနလည္း ရွင္းလင္းလိုက္ပါတယ္။

Computer မွာ 0 နဲ႕ 1 ပဲ ရိွပါတယ္။ 0 မဟုတ္ ရင္ 1 ေပါ့။ အဲဒါကို bit လို႕ ေခၚပါတယ္။

8 Bit ကို 1 Byte လို႕ ေခၚပါတယ္။ 8 Bit ဆိုတာကေတာ့ binary system အရ 00000000 ကေန ၿပီးေတာ့ 11111111 ထိ ရိွပါတယ္။

binary value 11111111 ကို decimal ေျပာင္း 255 ရလာပါတယ္။

ဒါဟာ 8 Bit မွာ သိမ္းႏိုင္တဲ့ အမ်ားဆံုး တန္ဖိုးပါ။

Integer ဟာ 32 Bit ရိွပါတယ္။ Integer တန္ဖိုးမွာ unsigned နဲ႕ signed ဆိုၿပီး ရိွပါတယ္။ Unsign ဟာ အေပါင္း ကိန္းေတြ ပဲ ျဖစ္တဲ့ အတြက္ေၾကာင့္ 32 bit အျပည့္ အသံုးျပဳႏိုင္ပါတယ္။ Signed ကေတာ့ +/- စတာပါလာတဲ့ အတြက္ေၾကာင့္ 31 Bit ပဲ အသံုးျပဳႏိုင္ပါတယ္။ 1 bit ကိုေတာ့ အေပါင္း လား အႏႈတ္လား ဆံုးျဖတ္ဖို႕ အတြက္ေပးလိုက္ရပါတယ္။

Bit ေပၚမွာ မူတည္ၿပီး Integer တန္ဖိုးကို တြက္တဲ့ ပံုေသးနည္း ရိွပါတယ္။

(2 ^ [Total Bit]) - 1
^ သည္ power ျဖစ္သည္။

ပါ။ ဒါေၾကာင့္ 8 Bit အတြက္ဆိုရင္ေတာ့

(2 ^ 8) - 1
= 256 - 1
= 255

Sign Integer အျမင့္ဆံုး တန္ဖိုး တြက္ၾကည့္ရင္ေတာ့

31 Bit ကို အမ်ားဆံုးထားတယ္။ ဒါေၾကာင့္

(2 ^ 31) - 1
=  2147483648 - 1
= 2,147,483,647

ဆိုၿပီး ရလာပါတယ္။

ကၽြန္ေတာ္တို႕ အႏႈတ္ ရဲ႕ အနည္းဆံုး တန္ဖိုး မတြက္ ခင္ ေအာက္က ဇယားေလးကို တခ်က္ၾကည့္လိုက္ပါ။

Binary Value Two's complement interpretation Unsigned interpretation
00000000 0 0
00000001 1 1
01111111 127 127
10000000 -128 128
10000001 -127 129
10000010 -126 130
11111110 −2 254
11111111 −1 255

ဒီ table မွာ ဘယ္ဘက္ ဆံုးကေတာ့ Binary တန္ဖိုး နဲ႕ အလယ္က Singed တန္ဖိုး ၊ ေနာက္ဆံုးကေတာ့ Unsigned တန္ဖိုးပါ။

အနႈတ္ ျဖစ္ၿပီဆိုတာနဲ႕ ေရွ႕ဆံုး binary ကို 1 ေျပာင္းလိုက္ပါတယ္။ Sign မွာ 0 အတြက္ က အေပါင္း အေနနဲ႕ တည္ရိွေနေပမယ့္ အနႈတ္ 0 ဆိုတာ မရိွပါဘူး။ ဒါေၾကာင့္ ကၽြန္ေတာ္တို႕ အေနနဲ႕ အနႈတ္ တန္ဖိုး တစ္ခု ပို ၿပီး သိမ္းလို႕ရပါတယ္။

ဒါေၾကာင့္ ေအာက္က equation နဲ႕ Integer ရဲ႕ Max range ကို တြက္လို႕ ရပါတယ္။

- (2 ^ [Total Bit]) to (2 ^ [Total Bit]) - 1

ဒါေၾကာင့္ 32 Bit Integer Signed ကို တြက္ၾကည့္ရင္ေတာ့

- (2 ^ 31) to (2 ^31) -1
=  −2,147,483,648 to 2,147,483,647

Unsigned ကို တြက္ရင္ေတာ့ 32 Bit အျပည့္ နဲ႕ တြက္ရပါမယ္။

0 to (2 ^ 32) - 1
= 0 to 4,294,967,295

ရ လာပါမယ္။

Float ကေတာ့ 32 Bit ရိွပါတယ္။

32 bit မွာ

sign 1 bit exponent 8 bit fractionb 23 bit

binary value 0 01111100 01100000000000000000000

ကို ၃ ပိုင္း ခြဲထုတ္ပါမယ္။

Sign 0
exponent 01111100
fraction က 01100000000000000000000

sign 0 ျဖစ္တဲ့ အတြက္ေၾကာင့္ +

1 + SUM ( i=1 To 23) of b(23-i) 2 ^ -i

ဒါေၾကာင့္

1 + 2 ^ -2 + 2 ^ -3 = 1.375

exponent က 01111100

2 ^ (e - 127) = 2 ^ 124-127 = 2 ^ -3
value = 1.375 x 2 ^ -3 = 0.171875

ဒါေၾကာင့္ 0.171875 ကို binary 0 01111100 01100000000000000000000 အေနနဲ႕ သိမ္းဆည္းပါတယ္။

Float ဟာ ဒႆမ ၇ ေနရာထိ သိမ္းႏိုင္ပါတယ္။

ေနာက္ထပ္ ဒႆမ တန္ဖိုးကေတာ့ Double ပါ။

Double ကေတာ့ 64 Bit ရိွပါတယ္။ Double ကေတာ့ ဒႆမ 16 ေနရာထိ သိမ္းႏိုင္ပါတယ္။

String တန္ဖိုးကေတာ့ character storage ေပၚမွာ မူတည္ပါတယ္။

  • ASCII ဆိုရင္ 1 Character 8 Bit
  • UTF-8 ဆိုရင္ 8 Bit ကေန 32 Bit (4 Bytes)
  • UTF-16 ဆိုရင္ 16 Bit ကေန 32 Bit (4 Bytes)

အထိ ေနရာ ယူပါတယ္။

ကၽြန္ေတာ္တို႕ အေနနဲ႕ storage ေတြ အေၾကာင္း အနည္းငယ္ သိထားျခင္းအားျဖင့္ variable ေတြ အမ်ားႀကီး ဘာေၾကာင့္ မသံုးသင့္တယ္ဆိုတာကို သေဘာေပါက္ေစဖို႕ပါ။ memory အသံုးျပဳပံု အနည္းဆံုး ျဖစ္ေအာင္ ဘယ္လို ေရးရမလဲ ဆိုတာကို စဥ္းစားေစႏိုင္ဖို႕ ရည္ရြယ္ပါတယ္။ တျခား အေသးစိတ္ကိုေတာ့ Computer Science ပိုင္းနဲ႕ သက္ဆိုင္သြားပါၿပီ။ ကၽြန္ေတာ့္ အေနနဲ႕ Programming Basic ပိုင္းမွာ ေတာ့ ဒီေလာက္ ပဲ သင္ၾကားၿပီးေတာ့ programming နဲ႕ သက္ဆိုင္ရာေတြကို ဆက္လက္ ေရးသားသြားပါမယ္။

results matching ""

    No results matching ""