Code chuyển đổi cơ số 10 sang 2

Bài này sẽ giúp các bạn biết cách chuyển đổi giữa các hệ đếm. Cần chú ý đầu tiên là cách chuyển đổi từ hệ cơ số 10 sang các hệ cơ số bất kỳ như 2, 8, 16 và ngược lại. Ngoài ra, cách chuyển đổi giữa các hệ cơ số 2, 8, 16 cũng sẽ được nhắc đến.

  • A(b) = A’(10)
  • A’(10) = anbn + an-1bn-1 +…+ a0b0 + a-1b-1 +…+ a-mb-m
  • Ví dụ:

                (6  5   4    3   2    1   0   -1  -2  -3  -4) là số mũ

                1  1  0  1  0  0  1 . 1  0  1  1(2)

                = 1.26 + 1.25 + 0.24 + 1.23 + 0.22 + 0.21 + 1.20 + 1.2-1 + + 0.2-2 + 1.2-3 + 1.2-4

                = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625

                = 105.6875(10)

Đổi phần nguyên: Lấy số nguyên thập phân N(10) lần lượt chia cho b cho đến khi thương số bằng 0. Kết quả số chuyển đổi M(b) là các số dư trong phép chia được viết ra theo thứ tự ngược lại.

Code chuyển đổi cơ số 10 sang 2

Đổi phần lẻ: Lấy phần thập phân (sau dấu phẩy) N(10) lần lượt nhân với b cho đến khi phần thập phân của tích số bằng 0. Kết quả số chuyển đối M(b) là các số phần nguyên trong phép nhân được viết ra theo thứ tự phép tính.

Code chuyển đổi cơ số 10 sang 2

3.1. Từ hệ cơ số 2 sang hệ cơ số 8

  • Quy tắc: Dãy 3 bit liền nhau từ phải qua trái trong hệ cơ số 2 sẽ tương ứng với 1 số trong hệ cơ số 8.
  • Ví dụ: 111111111110(2) = ?(8)

Gom 3 bit nhị phân từ phải sang trái (111)(111)(111)(110) được (7) (7) (7) (6)

Kết quả: 111111111110(2) = 7776(8)

3.2. Từ hệ cơ số 2 sang hệ cơ số 16

  • Quy tắc: Dãy 4 bit liền nhau từ phải qua trái trong hệ cơ số 2 sẽ tương ứng với 1 số trong hệ cơ số 16.
  • Ví dụ: 11111111111111111110(2) = ?(16)

Gom 4 bit nhị phân từ phải sang trái (1111)(1111)(1111)(1111)(1110) được (15) (15) (15) (15) (14)

Kết quả: 11111111111111111110(2) = FFFFE(16)

3.3. Từ hệ cơ số 8 sang hệ cơ số 2

  • Quy tắc: Một chữ số trong hệ cơ số 8 sẽ tương ứng với dãy 3 bit liền nhau trong hệ cơ số 2.
  • Ví dụ: 27(8) = ? (2)

Đổi số (2) (7) thành dãy nhị phân 3 bit (010) (111)

Kết quả: 27(8) = 010111(2)

3.4. Từ hệ cơ số 16 sang hệ cơ số 2

  • Quy tắc: Một chữ số trong hệ cơ số 16 sẽ tương ứng với dãy 4 bit liền nhau trong hệ cơ số 2.
  • Ví dụ: 27(16) = ? (2)

Đổi số (2) (7) thành dãy nhị phân 4 bit (0010) (0111)

Kết quả: 27(16) = 00100111(2)

3.5. Từ hệ cơ số 8 sang hệ cơ số 16 và ngược lại

  • Cách đơn giản nhất là đổi hệ cơ số 8 qua hệ cơ số 2 rồi đổi qua hệ cơ số 16.
  • Ví dụ: 27(8) = ? (16)

Đổi số (2) (7) thành dãy nhị phân 3 bit (010) (111). Ta được dãy nhị phân 010111(2). Đổi sang hệ cơ số 16 bằng cách gom 4 bit từ phải sang trái (0001)(0111) được (1)(7).

Kết quả: 27(8) = 00010111(2) = 17(16)

Bài trước và bài sau trong môn học

Số thập phân là số cơ số 10 vì nó nằm trong khoảng từ 0 đến 9, có tổng số 10 chữ số từ 0 đến 9. Bất kỳ kết hợp chữ số nào là số thập phân như 23, 445, 132, 0, 2,…

2. SỐ NHỊ PHÂN

Số nhị phân là số cơ số 2 vì số này là 0 hoặc 1. Bất kỳ kết hợp nào của 0 và 1 là số nhị phân như 1001, 101, 11111, 101010, ...

Thập phân Nhị phân
1 0
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010

Chương trình C# để chuyển đổi số thập phân thành số nhị phân

Thuật toán sau:

  • Bước 1: Chia số đó cho 2 với toán tử % và lưu phần dư vào trong mảng

  • Bước 2: Chia số cho 2 với toán tử /

  • Bước 3: Lặp lại bước 2 tới khi số là lớn hơn 0

using System; public class ConversionExample { public static void Main(string[] args) { int n, i; int[] a = new int[10]; Console.Write("Enter the number to convert: "); n= int.Parse(Console.ReadLine()); for(i=0; n>0; i++) { a[i]=n%2; n= n/2; } Console.Write("Binary of the given number= "); for(i=i-1 ;i>=0 ;i--) { Console.Write(a[i]); } } }

Kết quả:

Enter the number to convert:10 Binary of the given number= 1010

Xem ví dụ

Chuyển đổi từ số thập phân thành số nhị phân trong C

Bài tập

Viết một chương trình C để nhập một số thập phân và sau đó chuyển đổi số đó thành dạng nhị phân.

Chương trình C để chuyển đổi số thập phân thành số nhị phân

Mình sử dụng thuật toán sau:

#include<stdio.h> #include<conio.h> main() { int a[10],n,i; printf("Nhap mot so bat ky: "); scanf("%d",&n); for(i=0;n>0;i++) { a[i]=n%2; n=n/2; } printf("\nDang nhi phan cua so vua nhap la = "); for(i=i-1;i>=0;i--) { printf("%d",a[i]); } printf("\n\n===========================\n"); printf("Tôi chuc cac ban hoc tot!"); getch(); }

Quảng cáo

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

PDF