Câu trả lời:
Như đã đề cập trước đó, công thức = DEC2HEX (A1) chuyển đổi thành hex và DEC2HEX (A1,8) chuyển đổi thành hex với tiền tố 0 để biểu thị 32 bit. Trong khi thêm số 0 đứng đầu làm cho các số dễ đọc hơn, đặc biệt nếu bạn sử dụng phông chữ điểm cố định, các phiên bản hex và thập phân có thể bị lẫn lộn khi tất cả các chữ số trong số xảy ra là 0-9 (ví dụ 327701 = 50015).
Một cải tiến là thêm tiền tố "0x". Có 2 cách để làm điều này. = "0x" & DEC2HEX (A1,8) sẽ thực hiện thủ thuật, nhưng nó thay đổi trường thành trường văn bản, do đó, nó không còn có thể dễ dàng được sử dụng trong các công thức. Một phương pháp khác là sử dụng một định dạng tùy chỉnh. Nếu bạn áp dụng định dạng tùy chỉnh "0x" @ cho ô, thì giá trị của ô vẫn có thể được sử dụng trong một phương trình. Ví dụ:
╔═══╦════════════════╦════════════╦═══════════════ ══════════════╦═══════════════╗ ║ A ║ B ║ ║ ╠═══╬════════════════╬════════════╬═══════════════ ══════════════╬═══════════════╣ 1 ║ Giá trị Formula Công thức tương ứng Format Định dạng số 2 Số thập phân ║ 11162790 11162790 ║ Chung 3 ║ Hex AA54A6 = DEC2HEX (B2) ║ Chung 4 ║ dẫn đầu 0 ║ 00AA54A6 = DEC2HEX (B2,8) Chung 5 ║ Văn bản tiền tố 0x 0x00AA54A6 = DEC2HEX (B2,8) "0x" @ 6 ║ Văn bản tiền tố 0x 0x00AA54A6 = "0x" & DEC2HEX (B2,8) Chung 7 Sử dụng B5 AA54A600 = DEC2HEX (HEX2DEC (B5) * 256) Chung 8 ║ Sử dụng B5 0xAA54A600 = DEC2HEX (HEX2DEC (B5) * 256) "0x" @ 9 ║ Hãy thử sử dụng B6 #NUM! = DEC2HEX (HEX2DEC (B6) * 256) ║ Chung ╚═══╩════════════════╩════════════╩═══════════════ ══════════════╩═══════════════╝
╔═══╦═════════════╦═══════════════╦═══════════════ ═════════════════════╦═════════╗ ║ A ║ B ║ ║ ╠═══╬═════════════╬═══════════════╬═══════════════ ═════════════════════╬═════════╣ 1 ║ Giá trị Formula Công thức tương ứng ║ Định dạng 2 ║ Số thập phân ║ 3.098,743,209 3098743209 #, ## 0 3 By Số byte trên B8B3 = DEC2HEX (INT (B2 / 2 ^ 16), 4) Chung 4 By Số byte thấp hơn ║ 11A9 = DEC2HEX (MOD (B2, 2 ^ 16)) Chung 5 Số đầy đủ ║ 0xB8B3_11A9 = "0x" & DEC2HEX (INT (B2 / 2 ^ 16), 4) Chung ║ ║ ║ & "_" & DEC2HEX (MOD (B2, 2 ^ 16), 4) ╚═══╩═════════════╩═══════════════╩═══════════════ ═════════════════════╩═════════╝
Nếu bạn muốn định dạng một ô để bạn có thể nhập số thập phân và tự động hiển thị nó dưới dạng số thập lục phân, thì điều đó là không thể. Bạn có thể định dạng ô dưới dạng văn bản và nhập trực tiếp các số thập lục phân (nhưng lưu ý rằng Excel không thể sử dụng các số đó để tính toán) hoặc sử dụng các hàm DEC2HEX()
và HEX2DEC()
để chuyển đổi giữa cơ sở 10 và cơ sở 16.
Nếu ô được chuyển đổi là A1
sử dụng =DEC2HEX(A1)
.
="0x"&DEC2HEX(A1,4)
để có được một kết quả trông giống như 0x1AF2
.
Nếu bạn cần thực hiện các phép toán trên các số được chuyển đổi thành hex, trước tiên hãy chuyển đổi chúng thành số thập phân, thực hiện thao tác, sau đó chuyển đổi lại thành hex.
Ví dụ: nếu ô A1
có số hex, chẳng hạn như sẽ được tạo từ công thức này:
=DEC2HEX(17)
sẽ được hiển thị là 11 và ô A2
có công thức:
=DEC2HEX(165)
sẽ được hiển thị dưới dạng A5
và bạn muốn thêm chúng lại với nhau, sau đó công thức này sẽ nhận được kết quả mong muốn:
=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))
sẽ được hiển thị dưới dạng B6
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)
Công thức REPT lặp lại "0" dựa trên độ dài của chuỗi hex được tạo bằng cách chuyển đổi nó từ số thập phân và độ dài mong muốn của chuỗi HEX. Trong ví dụ này tôi đang tìm cách tạo các chuỗi HEX có độ dài 4.
Sau đó, bạn nối các số 0 đứng đầu với chuỗi HEX thực tế, từ đó tạo ra giá trị HEX có độ dài mong muốn.
Ưu điểm:
Lưu ý: Tôi sử dụng điều này khi tôi sao chép chuỗi HEX và chúng được sao chép ở các độ dài khác nhau. Trước tiên tôi tạo một cột các giá trị thập phân từ các giá trị ban đầu mà sau đó tôi có thể chạy công thức này.
Đây là một giải pháp tôi tìm thấy để đảm bảo rằng tôi có thể định dạng các số hex này thành định dạng HTML:
SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))
DEC2BIN()
có chuyển đổi thành nhị phân. Đối với nhị phân có chiều rộng cố định, hãy sử dụng một cái gì đó như=TEXT(DEC2BIN(A1), "0000")