Transcript სხვადასხვა სისტემაში რიცხვების გადაყვანის გამოყენებითი
სხვადასხვა სისტემაში რიცხვების გადაყვანის გამოყენებითი პროგრამის შექმნა
მომხსენებლები
:
მარიამ გოგილაშვილი
,
ბაჩანა ბერაძე
,
დიმიტრი ამილახვარი ხელმძღვანელი
:
ნათელა არჩვაძე
ამოცანა
: რიცხვების კონვერტირება : ათობით და ორობით თვლის სისტემებს შორის .
( მარიამ გოგილაშვილი ) ათობით და რვაობით თვლის სისტემებს შორის . ( ბაჩანა ბერაძე ) ათობით და თექვსმეტობით თვლის სისტემებს შორის . ( დიმიტრი ამილახვარი )
მიზანი
: ცნობილი ალგორითმების საშუალებით შევქმნათ პროგრამული კოდი და შესაბამისი windows აპლიკაცია , რომლის მეშვეობითაც შესაძლებელი იქნება დასმული ამოცანის განხორციელება .
ათობით და ორობით სისტემებს შორის კონვერტირება
ალგორითმი : 10/2=5(0) 5/2=2(1) 2/2=1(0) 1/2=0(1) 1*2 3 +0*2 2 +1*2 1 +0*2 0 =10
10
10
= 1010
2
ათობითი -> ორობითი პროგრამული კოდის ფრაგმენტი : do { If(number%2) binary[counter++]=‘1’; else binary[counter++]=‘0’; number=number/2; }while(number); binary[counter++]=‘\0’;
ალტერნატიული ალგორითმი
: ლოგიკური ოპერატორები &( და ), |( ან ), ~( არა ) ძვრის ოპერატორები >> , <<
do { If(number&1) binary[counter++]=‘1’; else binary[counter++]=‘0’; number=number>>1; }while(number); binary[counter++]=‘\0’;
ორობითი -> ათობითი პროგრამული კოდის ფრაგმენტი : for(int i=strlen(binary); i ; i--,multiplier*=2) { If(binary[i-1]==‘1’) number+=multiplier; } else if(binary[i-1]!=‘0’) return 1; cout< ალგორითმი : ათობითი -> ორობითი 137 10 =10001001 2 -> რვაობითი 10001001 2 =010 001 001 2 =211 8 2*8 2 +1*8 1 +1*8 0 =137 10 -> პროგრამული კოდის ფრაგმენტი : for(j=0; j<3-length%3; j++) { convert[j]=‘0’; } for(i=length; i>0; i--) { convert[j++]=binary[i-1]; } convert[j++]=‘\0’; რვაობითი ორობითი 0 000 1 001 2 3 6 010 011 4 100 5 101 110 7 111 for(i=0, k=0; i ალტერნატიული პროგრამული კოდი : int main(){ int number=0; cout<<“shemoitanet ricxvi”< რვაობითი -> ათობითი პროგრამული კოდის ფრაგმენტი : { for(int i=strlen(oct); i; i--, multiplier*=8) switch(oct[i-1]){ case ‘0’: mul=0; break; …………….. case ‘7’: mul=7; break; default: cout<<“mistake”; return 1; } } number+=mul*multiplier; ალგორითმი : 589 10 =1001001101 2 1001001101 2 =0010 0100 1101 2 =24D 16 2*16 2 +4*16 1 +13*16 0 = 589 10 ათობითი -> თექვსმეტობითი პროგრამული კოდის ფრაგმენტი : for(j=0; j<4-length%4; j++) { convert[j]=‘0’; } for(i=length; i>0; i--) { convert[j++]=binary[i-1]; } convert[j++]=‘\0’; თექვსმეტობითი 0 1 2 ორობითი 0000 0001 0010 3 4 5 6 0011 0100 0101 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 for(i=0, k=0; i case 15: hex[k]=‘F’; break;} } hex[k++]=‘\0’; : } int main(){ int number=0; cout<<“shemoitanet ricxvi”< თექვსმეტობითი -> ათობითი პროგრამული კოდის ფრაგმენტი : } } for(int i=strlen(hexadecimal); i; i--,multiplier*=16) { mul=hexadecimal[i-1]-48; if(mul>0 && mul<10) number+=mul*multiplier; else { mul=toupper(hedecimal[i-1])-65; if(mul<0 || mul>6) return 1; number+=(10+mul)*multiplier; !ათობით და რვაობით სისტემებს შორის კონვერტირება
ათობითი
რვაობითი
ათობით და თექვსმეტობით სისტემებს შორის კონვერტირება
ალტერნატიული პროგრამის კოდი
გმადლობთ ყურადღებისთვის