7/27/12

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

Bài viết này gồm có các phần:

1. DEC -> BIN (hệ thập phân sang hệ nhị phân)
2. DEC -> HEX (hệ thập phân sang hệ thập lục phân)
3. HEX -> BIN (hệ thập lục phân sang hệ nhị phân)
4. BIN -> HEX (hệ nhị phân sang hệ thập lục phân)
5. BIN -> DEC (hệ nhị phân sang hệ thập phân)
6. HEX -> DEC (hệ thập lục phân sang hệ thập phân)

Giải thích: HEX = hexadecimal; DEC=decimal; BIN= binary; OCT=octal (Hệ bát phân)
Trước hết, bạn cần nhớ bảng sau:



1. DEC -> BIN (Chuyển từ thập phân sang hệ nhị phân)
Đầu tiên chia số cần chuyển đổi cho 2 và lấy số dư, sau đó cứ tiếp tục lấy kết quả của phép chia trên chia tiếp cho 2 cho đến khi kết quả bằng không.

Lấy số 3295 (trong hệ thập phân) làm ví dụ:

3295 chia 2 = 1647.5 -> Dư 1
1647 chia 2 = 823.5 -> Dư 1
823 chia 2 = 411.5 -> Dư 1
411 chia 2 = 205.5 -> Dư 1
205 chia 2 = 102.5 -> Dư 1
102 chia 2 = 51 -> Dư 0
51 chia 2 = 25.5 -> Dư 1
25 chia 2 = 12.5 -> Dư 1
12 chia 2 = 6 -> Dư 0
6 chia 2 = 3 -> Dư 0
3 chia 2 = 1.5 -> Dư 1
1 chia 2 = 0.5 -> Dư 1


Sắp xếp các số dư từ dưới lên trên ta được: 3295 (demical) = 110011011111 (binary).



2. DEC -> HEX (Chuyển từ thập phân sang hex)
Tiếp tục dùng số 3295 làm ví dụ, như trên ta có 3295 (demical) = 110011011111 (binary). Chia 110011011111 làm từng chuỗi gồm 4 số, kết hợp với bảng ở trên ta sẽ được:

110011011111b -> 1100 1101 1111 -> C D F

Suy ra
3295 (decimal) = 110011011111 (binary) = 0CDF (hex)


3. HEX -> BIN

Lấy chuỗi DEAD làm ví dụ. Sử dụng bảng trên ta sẽ có:

D = 1101
E = 1110
A = 1010
D = 1101


Suy ra

DEAD (hex) = 1101 1110 1010 1101 (binary)


4. BINARY -> HEX (Chuyển từ nhị phân sang hex)

Lấy số 1010110111101111 làm ví dụ, chia thành các chuỗi gồm 4 số:
1010110111101111 -> 1010 1101 1110 1111

Sử dụng bảng trên ta sẽ có được:

1010 = A
1101 = D
1110 = E
1111 = F


Suy ra

1010110111101111 (binary) = 0ADEF (hex)


5. BINARY -> DECIMAL(Chuyển từ nhị phân sang thập phân)

Lấy số 1101 làm ví dụ:
1*(2^3) + 1*(2^2) + 0*(2^1) + 1*(2^0) = 13
Số 1 thứ nhất
1 * (2^3)
Số 1 thứ hai
1 * (2^2)
Số 0 thứ ba
0 * (2^1)
Số 1 thứ tư
1*(2^0)


1101 (binary) = 13 (decimal)


=> Số thứ nhất nhân với số 2 với số mũ cao nhất cộng cho số thứ hai nhân với số 2 với số mũ giảm dần cứ thế….

6. HEX -> DECIMAL (hex sang thập phân)

Để chuyển đổi từ hex sang decimal đầu tiên ta chuyển hex sang binary, sau đó lại từ binary ta chuyển về decimal. Hix hơi mệt

Lấy số FEED làm ví dụ:
Từ hex sang binary:

FEED (hex) = 1111 1110 1110 1101 (binary)


Từ binary sang decimal:

1*(2^15) + 1*(2^14) + 1*(2^13) + 1*(2^12) + 1*(2^11) + 1*(2^10) +1*(2^9) + 0*(2^8) + 1*(2^7) +1*(2^6) +1*(2^5) + 0*(2^4) +1*(2^3) +1*(2^2) + 0*(2^1) + 1*(2^0) = 65261

Như vậy:

FEED (hex) = 1111111011101101 (binary) = 65261 (decimal)

Bookmark and Share

0 comments:

Post a Comment

Next previous home

Cộng đồng yêu thiết kế Việt Nam Thiet ke website, danang