Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #define MAX 1000
- using namespace std;
- void Chuyen10Sang2(int a[32], int x)
- {
- int i = 31;
- while (x != 0)
- {
- a[i] = x % 2;
- x = x / 2;
- i--;
- }
- }
- void chuyen10sang16(char b[32], int x)
- {
- int i = 31;
- while (x != 0)
- {
- int du = x % 16;
- if (du <= 9)
- {
- b[i] = du + 48;
- }
- if (du == 10)
- {
- b[i] = 'A';
- }
- if (du == 11)
- {
- b[i] = 'B';
- }
- if (du == 12)
- {
- b[i] = 'C';
- }
- if (du == 13)
- {
- b[i] = 'D';
- }
- if (du == 14)
- {
- b[i] = 'E';
- }
- if (du == 15)
- {
- b[i] = 'F';
- }
- x = x / 16;
- i--;
- }
- }
- void xuatmang10sang2(int a[32])
- {
- int i = 31;
- for (int i = 0; i < 32; i++)
- {
- cout << " " << a[i];
- }
- }
- void xuatmang10sang16(char b[32])
- {
- int i = 31;
- for (int i = 0; i < 32; i++)
- {
- cout << " " << b[i];
- }
- cout << endl;
- }
- void Chuyen2Sang10(int c[32], int x)
- {
- int kq = 0, du, somu = 0;
- while (x > 0)
- {
- du = x % 10;
- kq = kq + du * pow(2, somu);
- somu++;
- x = x / 10;
- }
- cout << " " << kq;
- cout << endl;
- }
- int Chuyen16Sang10(char d[32])
- {
- int len = strlen(d);
- int base = 1;
- int dec_val = 0;
- for(int i=len -1;i>=0;i--)
- {
- if(d[i]>='0'&&d[i]<='9')
- {
- dec_val = dec_val + (d[i] - 48)*base;
- base = base * 16;
- }
- else if(d[i] >= 'A'&&d[i] <= 'F')
- {
- dec_val = dec_val + (d[i] - 55)*base;
- base = base * 16;
- }
- }
- return dec_val;
- }
- void xuatChuyen16Sang10(char d[32])
- {
- cout << Chuyen16Sang10(d) << endl;
- }
- int Chuyen2Sang16(char num[MAX])
- {
- char hexa[MAX];
- int temp;
- long int i = 0, j = 0;
- while(num[i])
- {
- num[i] = num[i] - 48;
- i++;
- }
- --i;
- while (i - 2 >= 0)
- {
- temp = num[i - 3] * 8 + num[i - 2] * 4 + num[i - 1] * 2 + num[i];
- if(temp>9)
- {
- hexa[j++] = temp + 55;
- }
- else
- {
- hexa[j++] = temp + 48;
- }
- i = i - 4;
- }
- if(i==1)
- {
- hexa[j] = num[i - 1] * 2 + num[i] + 48;
- }
- else if(i==0)
- {
- hexa[j] = num[i] + 48;
- }
- else
- {
- --i;
- }
- cout << "he co so 16 la: \n";
- while(j>=0)
- {
- cout << hexa[j--];
- }
- cout << endl;
- return 0;
- }
- void main()
- {
- int a[32] = { 0 };// khoi tao so luong phan tu la 1
- char b[32];
- int c[32];
- char d[32];
- int luachon;
- cout << "<<<<<<<<<<<<<<<<<<<MENU LUA CHON>>>>>>>>>>>>>>>>>" << endl;
- cout << "Nhap Cac So Tuong Ung De Thuc Hien" << endl;
- cout << "So 1: Chuyen Tu He 10 Sang 2" << endl;
- cout << "So 2: Chuyen Tu 10 Sang 16" << endl;
- cout << "So 3: Chuyen Tu 2 Sang 10" << endl;
- cout << "So 4: Chuyen Tu 16 Sang 10" << endl;
- cout << "So 5: Chuyen Tu 2 Sang 16" << endl;
- cout << "So 6: De Thoat" << endl;
- cin >> luachon;
- switch (luachon)
- {
- case 1:
- {
- int x;
- cout << "nhap so bat ki de kiem tra: ";
- cin >> x;
- Chuyen10Sang2(a, x);
- xuatmang10sang2(a);
- break;
- }
- case 2:
- {
- int x;
- cout << "nhap so bat ki de kiem tra: ";
- cin >> x;
- for (int i = 0; i < 32; i++)
- {
- b[i] = '0';
- }
- chuyen10sang16(b, x);
- xuatmang10sang16(b);
- break;
- }
- case 3:
- {
- int x;
- cout << "nhap so bat ki de kiem tra: ";
- cin >> x;
- Chuyen2Sang10(c, x);
- break;
- }
- case 4:
- {
- cout << "nhap vao so bat ki de kiem tra: ";
- cin >> d;
- Chuyen16Sang10(d);
- xuatChuyen16Sang10(d);
- break;
- }
- case 5:
- {
- char num[MAX];
- cout << "nhap vao so bat ki de kiem tra: ";
- cin >> num;
- Chuyen2Sang16(num);
- break;
- }
- case 6:
- {
- break;
- cout << "nhan phim bat ki de thoat";
- }
- }
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement