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

Đối với những ai không là lập trình viên thì khi nghe đến các hệ nhị phân, thập phân, thập lục phân…đều không hiểu. Còn với mỗi lập trình viên, những hệ số này là khá quen thuộc và quan trọng trong công việc. Mỗi hệ số có một cách thể hiện riêng. Trong bài viết này sẽ có những kiến thức cơ bản về hệ số thập lục phân; nhị phân; cách đổi từ hệ 16 sang hệ 2 và ngược lại.

Đang xem: Cách chuyển đổi hệ cơ số 2 sang 10

Giới thiệu tổng quan về hệ 16 [thập lục phân] và hệ 2 [nhị phân]

Để biết cách đổi từ hệ 16 sang hệ 2 và ngược lại thì chúng ta cần hiểu rõ về quy ước của 2 hệ này. Như vậy mới có thể tiến hành chuyển đổi một cách dễ dàng.

Hệ cơ số 16 [hệ thập lục phân]

Vào năm 1963 trong thế giới điện toán hệ cơ số thập lục phân xuất hiện bắt nguồn từ công ty IBM. Trước đó, thế hệ trước của chúng là hệ thống sử dụng trong máy tính Bendix G-15. Hệ thống này có chứa các ký tự số từ 0 đến 9 và kí tự chữ từ A đến F.

Hệ cơ số 16 có tên tiếng Anh là Hex [hay hexadecimal]. Chúng là một hệ đếm dựa trên 16 ký tự bao gồm số và chữ. Đặc điểm của hệ đếm này khá thú vị. Bởi vì trong hệ thập phân thường dùng chỉ bao gồm 10 ký tự chữ số để biểu thị các con số. Do hệ Hex có 16 chữ số, nên 6 chữ số thêm vào [ngoài 10 chữ số trong hệ thập phân] được biểu thị bằng 6 chữ cái đầu tiên của bảng chữ cái.

READ:  Mô Hình Nuôi Ốc Ntn Cách Vận Chuyển Ốc Đi Xa An Toàn Đúng Cách

Cuối cùng, các chữ số hệ Hex bao gồm A, B, C, D, E, F và 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Hiện nay, chúng được ứng dụng khá phổ biến trong toán học và công nghệ thông tin. Áp dụng hệ 16 vào lập trình HTML được biểu thị bằng số thập lục phân 6 chữ số FFFFFF. Chúng có thuộc tính color đại diện cho màu trắng. Còn 000000 đại diện cho màu đen…

Hệ cơ số 16 [hệ thập lục phân]

Hệ cơ số 2 [hệ nhị phân]

Hệ cơ số này được biết đến sớm nhất trong lịch sử. Từ cổ xưa chúng đã được áp dụng ở Ai Cập cổ đại, Trung Quốc và Ấn Độ với nhiều mục đích khác nhau. Và cho đến nay hệ cơ số 2 đã trở thành ngôn ngữ của ngành khoa học điện tử và máy tính.

Hệ cơ số 2 [nhị phân] có tên tiếng Anh là BIN [hay Binary]. Hệ này sử dụng 2 ký tự duy nhất là 0 và 1 để biểu đạt một giá trị. Đây là hệ thống để phát hiện tín hiệu điện hiệu quả nhất: tắt [0] và bật [1]. Ngoài ra, chúng cũng là cơ sở cho mã nhị phân được áp dụng vào soạn thảo dữ liệu trên máy tính. Kể cả những văn bản kỹ thuật số mà chúng ta đang đọc hiện nay cũng bao gồm các số nhị phân.

Việc đọc một số hệ cơ số 2 dễ dàng hơn so bạn nghĩ. Đây là một trong các hệ đếm dùng vị trí định lượng. Do vậy, mỗi chữ số trong một số hệ 2 được nâng lên lũy thừa 2. Chúng sẽ được bắt đầu từ vị trí phía ngoài cùng bên phải là 20. Trong hệ nhị phân, mỗi chữ số hệ 2 đề cập đến 1 bit.

READ:  Hướng Dẫn Cách Nâng Hạn Mức Chuyển Tiền Vietcombank Trên Điện Thoại

Xem thêm: Hướng Dẫn Cách Chuyển Tiền Qua Internet Banking Vietcombank, Cách Chuyển Khoản Bằng Sms Banking Vietcombank

Hệ cơ số 2 [hệ nhị phân]

Cách chuyển đổi giữa hai hệ cơ số 16 và hệ cơ số 2

Chúng ta có thể tiến hành chuyển đổi dễ dàng giữa 2 hệ cơ số 16 và 2. Việc chuyển đổi được dựa trên bảng chuyển đổi sau:

Bảng chuyển đổi từ hệ cơ số 16 [thập lục phân] sang hệ cơ số 2 [nhị phân]

Cơ số 16 Cơ số 2
0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Cách đổi từ hệ 16 sang hệ 2

Cách chuyển đổi bao gồm 2 bước cơ bản sau:

Bước 1: Đầu tiên cần chuyển từng số trong số 16 sang nibble.

Bước 2: Sau đó kết hợp các nibble lại thành chuỗi số trong hệ cơ số 2.

Cách đổi từ hệ 16 sang hệ 2

Ví dụ thứ nhất: Chuyển số hex 0x40 về hệ cơ số 2

Chia từng số hệ 16 ra và chuyển về số hệ 2 0x4 = 01002 và 0x0 = 00002.Sau đó kết hợp hai số trên lại thành một là 010000002.Vậy kết quả sau cách chuyển đổi từ hệ 16 sang hệ 2 0x40 = 010000002

Ví dụ thứ hai: Chuyển số hex 0x63F về hệ cơ số 2

Chia từng số hệ 16 ra và chuyển về số nhị phân 0x6 = 01102; 0x3 = 00112; 0xF = 11112.Sau đó kết hợp ba số trên lại thành một là 0110001111112.Vậy kết quả sau cách chuyển đổi từ hệ 16 sang hệ 2 0x63F = 0110001111112

Cách đổi từ hệ 2 sang hệ 16

Cách chuyển đổi này cũng chỉ bao gồm 2 bước sau:

Bước 1: Chia các số hệ 2 thành các nibble hợp lý.

Bước 2: Sau đó chuyển các nibble trên thành hệ số 16 tương ứng.

Ví dụ minh họa: Chuyển số hệ cơ số 2 010001012 về số 16

Chia số hệ cơ số 2 thành nhóm 4 bit 01002 = 0x4 và 01012 = 0x5.Sau đó kết hợp hai số trên lại thành một là 0x45.Vậy kết quả sau khi chuyển đổi 010001012 = 0x45.

Xem thêm: Giải Bài 1 Trang 43 Toán 12, Giải Bài 1, 2, 3 Trang 43 Sgk Giải Tích 12

Để có thể lập trình tốt thì những quy ước trên buộc phải được hiểu rõ. Cách đổi từ hệ 16 sang hệ 2 và ngược lại theo các bước hướng dẫn trên là không khó. Do vậy, bạn có thể chuyển đổi dễ dàng sau khi hiểu được nguyên lý của chúng.

Xem thêm bài viết thuộc chuyên mục: Chuyển file

Hệ đếm là một tập các kí tự [bảng chữ số] để biểu diễn các số và xác định giá trị của các biểu diễn số.

Các hệ đếm thường gặp

Có 2 loại hệ đếm cơ bản mà chúng ta vẫn thường gặp là:

  • Hệ đếm không vị trí  [hệ la mã,... và trong bài viết này mình sẽ không nhắc tới]
  • Hệ đếm có vị trí [hệ nhị phân, hệ thập phân, hệ thập lục phân,...]

1. Hệ số đếm có vị trí

Nguyên tắc chung

  • Cơ số của hệ đếm r là số kí hiệu được dùng.
  • Trọng số bất kì của một hệ đếm là ri [i có thể là số âm hoặc dương] giúp phân biệt giá trị biểu diễn của các chữ số khác nhau.
  • Mỗi số được biểu diễn bằng một chuỗi các chữ số, trong đó số ở vị trí thứ i có trọng số ri
  • Dạng tổng quát của một số trong hệ đếm có cơ số r là: [. . .a2a1a0.a-1a-2 . . .]r
    • giá trị của chữ số ai là 1 số nguyên trong khoảng 0 < ai < r

Biểu diễn số tổng quát:

Khi biểu diễn số ta thường thêm chỉ số để nhận biết chính xác hệ cơ số đang xét, ví dụ: 1010, 102, 1016

2. Hệ thập phân

Hệ thập phân [hệ đếm cơ số 10] là hệ đếm dùng số 10 làm cơ số. Đây là hệ đếm được sử dụng rộng rãi nhất trong các nền văn minh thời hiện đại.

Hệ gồm các chữ số 0,1,2,3,4,5,6,7,8,9 tạo nên.

Ví dụ:

33 = [3*10] + 3

5432 = [5*1000] + [4*100] + [3*10] + 2

Cơ số 10. Tức là, mỗi chữ số trong số được nhân với 10 mũ i, i tương ứng với vị trí của chữ số đó:

3310 = 3*101 + 3*100 

543210  = 5*103 + 4*101 + 3*101 + 2*100

Ví dụ biểu diễn số thực:

25.25610 = 2*101 + 5*100 + 2*10-1 + 5*10-2 + 6*10-3

  • Chữ số ngoài cùng bên trái là chữ số quan trọng nhất
  • Chữ số ngoài cùng bên phải là chữ số ít quan trọng nhất
  • Lưu ý chữ số sau dấu '.' cũng được biểu diễn tương tự nhưng số mũ giảm dần từ -1

3. Hệ nhị phân

Hệ nhị phân [hay hệ đếm cơ số hai hoặc mã nhị phân] là một hệ đếm dùng hai ký tự để biểu đạt một giá trị số, bằng tổng các lũy thừa của 2.

  • Hai chữ số: 0 và 1
  • Cơ số 2
  • Chữ số 1 và 0 trong ký hiệu nhị phân có cùng ý nghĩa như trong ký hiệu thập phân: 
  • Biểu diễn số nhị phân:  

  • Ví dụ:
    • 102 = 1*21 + 0*20 = 210
    • 1012 = 1*22 + 0*21 + 1*20 = 510
    • 100.101 = 1*22 + 0*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3 = 4.62510
      • Lưu ý ở đây các hệ số bằng 0 chúng ta không cần viết vào cũng được

Cách chuyển đổi nhị phân sang thập phân:

Nhân mỗi chữ số nhị phân với 2i và cộng vào kết quả

Cách chuyển đổi từ thập phân sang nhị phân: 

Đổi riêng phần nguyên và phần Thập phân

  • Phần nguyên thập phân sang nhị phân:
    • Cách 1:
      • Chia lặp đi lặp lại số đó cho 2. Phép chia dừng lại khi kết quả lần chia cuối cùng bằng 0.
      • Lấy các số dư theo chiều đảo ngược sẽ được số nhị phân cần tìm.
    • Cách 2:
      • Phân tích số đó thành tổng của các số 2i
  • Phần thập phân sang nhị phân:
    • Nhân liên tiếp phần phân số của số thập phân với 2
    • Lần lượt lấy phần nguyên của tích thu được sau mỗi lần nhân là kết quả cần tìm.
    • Lấy phần phân số của tích nhân làm số bị nhân trong bước tiếp theo.

Ví dụ 1: Minh họa cách đổi 1110 sang nhị phân bằng cách 1

Ví dụ 2: Minh họa cách đổi 0.8110 sang nhị phân 

Do 0.81 là một số vô tỉ nên ta không thể biết chính xác được số chữ số phía sau dấu '.' nên ở đây kết quả mình lấy 6 số sau dấu '.'

Ví dụ 3: Minh họa cách đổi 0.2510 sang nhị phân

Do 0.25 = 1/4 là một số hữu tỉ nên theo cách đổi trên ta hoàn toàn có thể xác định được chính xác số chữ số sau dấu '.' và 0.2510 = 0.012

Code C++ đổi phần nguyên từ thập phân sang nhị phân viết bằng đệ quy:

void DectoBin[int n] { if[n!=0] { DectoBin[n/2]; cout

Chủ Đề