Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int eight(int f){                      //отдельная функция для перевода в восьмеричную систему
  5.     int m[100];
  6. int i=0;
  7. while(f!=0){
  8.     m[i]=f%8;
  9.     f=f/8;
  10.     i++;
  11. }
  12. for (int j=i-1;j>=0;j--){
  13.     f=m[j]+f*10;
  14. }
  15. return f;
  16. }
  17. int main(){                  //основная функция
  18.     int B[9];
  19.     int a,b=0,c,d,g,numb1,numb2;
  20.     cout <<"Put eight numbers by example: x1 x2 x3.... xn\n";
  21.     for(int v = 0;v<8;v++ ){
  22.     cin >> B[v];
  23.     b=0;
  24.     numb1=g=d=B[v];
  25.     while(B[v]!=0){          
  26.         B[v]=B[v]/2;
  27.         b++;                    //определяем кол-во бит, без учёта незначащих нулей
  28.     }
  29.     c=(b+7)/8;                   //определяем кол-во задействованных байт
  30.     c=c*8-1;                    //определяем кол-во занятый бит
  31.     if(d%2!=0){                   //цикл для нечётных чисел
  32.     while(c>-1){
  33.         d &= ~(1 << c);          //зачемняем нечётные биты нулями
  34.         c=c-2;
  35.     }
  36.     }
  37.     else{                         //цикл для чётных чисел
  38.         c=c-1;
  39.         while(c>-1){
  40.             d |= (1 << c);          //зачемняем чётные биты единицами
  41.             c=c-2;
  42.     }
  43.     }
  44.     numb2=d;
  45.     cout << numb1 <<"\t"<< eight(numb1)<<"\t"<< numb2<<"\t"<<eight(numb2)<<endl;
  46.     }
  47.     system ("pause");
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement