Lập Trình C++ - Chuyển đổi Hệ Cơ Số

Chuyển đổi hệ cơ số trong C++

Đề bài

Viết chương trình C++ chuyển đổi hệ cơ số.

1. Chuyển đổi số nguyên N từ hệ cơ số 10 sang hệ cơ số Nhị phân bất kỳ. 2. Chuyển đổi hệ cơ số Nhị phân sang hệ cơ số 10 bất kỳ.

Cách chuyển đổi hệ cơ số

  • Chuyển đối hệ cơ số 10 sang hệ cơ số Nhị phân
  • Chuyển đối hệ cơ số Nhị phân sang hệ cơ số 10

Chuyển đối hệ cơ số 10 sang hệ cơ số B

Cách chuyển đổi số nguyên N từ hệ cơ số 10 sang hệ cơ số 2, trong ảnh dưới đây là ví dụ chuyển số 15 và số 6 sang hệ cơ số 2:

  1. Gán m = 15.
  2. Put phần dư m chia cho 2 (m % 2) vào stack.
  3. Gán m = m / 2.
  4. Nếu m > 0 quay lại bước 2.
  5. Đảo ngược lại stack ta được số cần tính.

Chuyển đổi hệ cơ số trong C

Các hệ số khác chuyển đổi tương tự.

Ví dụ chuyển đối hệ cơ số 10 sang hệ cơ số Nhị phân

Giả sử hệ cơ số cần chuyển là 2 <= B <= 16. Số đại điện cho hệ cơ số B > 10 là A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.

Chúng ta tạo ra một chương trình như sau để chuyển đổi hệ cơ số trong C++:

/** * Chuong trinh chuyen doi he co so trong C * Bai tap nay su dung bang ASCII de chuyen doi so nguyen thanh kieu ky tu * Link tham khao: https://vi.wikipedia.org/wiki/ASCII * */ #include <iostream> #include<string.h> using namespace std; const char CHAR_55 = 55; const char CHAR_48 = 48; /** * chuyen doi so nguyen n sang he co so b * * * @param n: so nguyen * @param b: he co so */ int convertNumber(int n, int b) { if (n < 0 || b < 2 || b > 16 ) { cout<<"He co so hoac gia tri chuyen doi khong hop le!"; return 0; } int i; char arr[20]; int count = 0; int m; int remainder = n; while (remainder > 0) { if (b > 10) { m = remainder % b; if (m >= 10) { arr[count] = (char) (m + CHAR_55); count++; } else { arr[count] = (char) (m + CHAR_48); count++; } } else { arr[count] = (char) ((remainder % b) + CHAR_48); count++; } remainder = remainder / b; } // hien thi he co so for (i = count - 1; i >= 0; i--) { cout<<arr[i]; } return 1; } /** * Ham main */ int main() { int n = 12; cout<<"So "<<n<<" trong he co so 2 = "; convertNumber(n, 2); cout<<"\nSo "<<n<<" trong he co so 16 = "; convertNumber(n, 16); return 1; }

Kết quả:

So 12 trong he co so 2 = 1100 So 12 trong he co so 16 = C

Chuyển đối hệ cơ số Nhị phân sang hệ cơ số 10

Trong ảnh dưới đây là ví dụ về chuyển đổi hệ cơ số 2 sang hệ cơ số 10.

Chuyển đổi hệ cơ số trong C

Các hệ cơ số khác tương tự.

Từ khóa » Chuyển Từ Hệ 16 Sang Hệ 10 C++