Chuyển đổi giữa các hệ cơ số.
Để chuyển đổi giữa các hệ cơ số khác nhai khi lập trình ứng dụng với Arduino hoặc các vxl khác, thông thường các ngôn ngữ lập trình đều có những hàm riêng để làm việc này. Giúp cho người lập trình có thể chuyển đổi anh chóng & dễ dàng các kiểu dữ liệu. Nhưng việc tìm hiểu cách thức chuyển đổi qua lại giữa các hệ cơ số cũng không kém phần quan trọng.
Như bài viết trên, mình đã trình bày sơ về việc chuyển từ kiểu số nhị phân qua các kiểu số khác.
Ở bài viết này mình sẽ trình này sơ cách chuyển:
Kiểu số thập phân sang kiểu số nhị phânĐể làm điều này.. ta thực hiện lần lượt các phép chư cho 2 (cơ số nhị phận), ghi nhớ phần dư và kết quả, lại lấy kết quả chia cho 2, ghi nhớ phần dư và kết quả.. tiếp tục cho đến khi kết quả nhỏ hơn (<) 2 hoặc phép chia cho kết quả là 0. Sau đó ghép các số dư theo thứ tự lần lượt từ phải sang trái sẽ ra kết quả.
Như ở ví dụ trên, giờ ta làm ngược lại đổi kiểu số thập phân 11
10 sang kiểu số nhị phân xxxx
2
Như đã trình bày, ta tiến hành:
- 11 / 2 = 5 dư 1
- 5 / 2 = 2 dư 1
- 2 / 2 = 1 dư 0
- 1 / 2 = 0 dư 1
Vậy kết quả 11
10 sau khi đổi qua hệ nhị phân sẽ là
10112
Kiểu số thập phân sang kiểu số bát phânĐể làm điều này.. ta thực hiện lần lượt các phép chư cho 8 (cơ số bát phân), ghi nhớ phần dư và kết quả, lại lấy kết quả chia cho 8, ghi nhớ phần dư và kết quả.. tiếp tục cho đến khi kết quả nhỏ hơn (<) 8 hoặc phép chia cho kết quả là 0. Sau đó ghép các số dư theo thứ tự lần lượt từ phải sang trái sẽ ra kết quả.
Như ở ví dụ trên, giờ ta làm ngược lại đổi kiểu số thập phân 69
10 sang kiểu số bát phân xxxx
8
Như đã trình bày, ta tiến hành:
- 69 / 8 = 8 dư 5
- 8 / 8 = 1 dư 0
- 1 / 8 = 0 dư 1
Vậy kết quả 69
10 sau khi đổi qua hệ bát phân sẽ là
1058
Kiểu số thập phân sang kiểu số thập lục phânĐể làm điều này.. ta thực hiện lần lượt các phép chư cho 16 (cơ số thập lục phận), ghi nhớ phần dư và kết quả, lại lấy kết quả chia cho 16, ghi nhớ phần dư và kết quả.. tiếp tục cho đến khi kết quả nhỏ hơn (<) 16 hoặc phép chia cho kết quả là 0. Sau đó ghép các số dư theo thứ tự lần lượt từ phải sang trái sẽ ra kết quả.
Như ở ví dụ trên, giờ ta làm ngược lại đổi kiểu số thập phân 261
10 sang kiểu số thập lục phân xxxx
16
Như đã trình bày, ta tiến hành:
- 261 / 16 = 16 dư 5
- 16 / 16 = 1 dư 0
- 1 / 16 = 0 dư 1
Vậy kết quả 261
10 sau khi đổi qua hệ thập lục phân sẽ là
10516
Chúng ta làm quen bảng số sau
Decimal |
Binary |
..Hex.. |
.Octal. |
---- |
Decimal |
Binary |
..Hex.. |
.Octal. |
0 |
0000 |
0 |
0 |
|
8 |
1000 |
8 |
|
1 |
0001 |
1 |
1 |
|
9 |
1001 |
9 |
11 |
2 |
0010 |
2 |
2 |
|
10 |
1010 |
A |
12 |
3 |
0011 |
3 |
3 |
|
11 |
1011 |
B |
13 |
4 |
0100 |
4 |
4 |
|
12 |
1100 |
C |
14 |
5 |
0101 |
5 |
5 |
|
13 |
1101 |
D |
15 |
6 |
0110 |
6 |
6 |
|
14 |
1110 |
E |
16 |
7 |
0111 |
7 |
7 |
|
15 |
1111 |
F |
17 |
Kiểu số nhị phân sang kiểu số thập lục phânĐể làm điều này ta tiến hành chia nhóm số nhị phân thành các nhóm nhỏ, mỗi nhóm gồm 4 ký số, từ phải qua trái. Nếu nhóm cuối không đủ 4 ký số thì ta thêm vào trái các ký số 0 cho đủ. Sau đó quy đổi trực tiếp từng nhóm nhỏ ra thành thập lục phân theo bảng trên, rồi lại ghép các kết quả thập lục phân đã tìm được. Ví dụ đổi kiểu số nhị phận 1001001110110
2 thành số thập lục phân xxx
16. Ta tiến hành
Chia nhóm 1001001110110
2 thành 1-0010-0111-0110
2 --> 0001-0010-0111-0110
2
Quy đổi
0110 => 6
0111 => 7
0010 => 2
0001 => 1
Kết quả là 1276
16
Kiểu số nhị phân sang kiểu số bát phânĐể làm điều này ta tiến hành chia nhóm số nhị phân thành các nhóm nhỏ, mỗi nhóm gồm 3 ký số, từ phải qua trái. Nếu nhóm cuối không đủ 3 ký số thì ta thêm vào trái các ký số 0 cho đủ. Sau đó quy đổi trực tiếp từng nhóm nhỏ ra thành bát phân theo bảng trên, rồi lại ghép các kết quả thập lục phân đã tìm được. Ví dụ đổi kiểu số nhị phận 1001001110110
2 thành số bát phân xxx
8. Ta tiến hành
Chia nhóm 1001001110110
2 thành 1-001-001-110-110
2 --> 001-001-001-110-110
2
Quy đổi
110 => 6
110 => 6
001 => 1
001 => 1
001 => 1
Kết quả là 11166
8