Jawaban:
Seperti disebutkan sebelumnya, rumus = DEC2HEX (A1) dikonversi menjadi hex, dan DEC2HEX (A1,8) dikonversi menjadi hex dengan 0 awalan untuk menunjukkan 32 bit. Saat menambahkan angka 0 di depan membuat angka lebih mudah dibaca, terutama jika Anda menggunakan font titik tetap, versi heks dan desimal bisa tercampur ketika semua angka dalam angka tersebut adalah 0-9 (mis. 327701 = 50015).
Perbaikan adalah menambahkan awalan "0x". Ada 2 cara untuk melakukan ini. = "0x" & DEC2HEX (A1,8) & amp; akan melakukan trik, tetapi itu mengubah bidang ke bidang teks, sehingga tidak dapat lagi dengan mudah digunakan dalam rumus. Metode lain adalah dengan menggunakan format khusus. Jika Anda menerapkan format khusus "0x" @ ke sel, maka nilai sel masih bisa digunakan dalam persamaan. Contoh:
╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬════════════════╬════════════╬═════════════════════════════╬═══════════════╣ ║ 1 ║ ║ Value ║ Corresponding Formula ║ Number Format ║ ║ 2 ║ Decimal ║ 11162790 ║ 11162790 ║ General ║ ║ 3 ║ Hex ║ AA54A6 ║ =DEC2HEX(B2) ║ General ║ ║ 4 ║ leading 0's ║ 00AA54A6 ║ =DEC2HEX(B2,8) ║ General ║ ║ 5 ║ Text 0x prefix ║ 0x00AA54A6 ║ =DEC2HEX(B2,8) ║ "0x"@ ║ ║ 6 ║ Text 0x prefix ║ 0x00AA54A6 ║ ="0x" & DEC2HEX(B2,8) ║ General ║ ║ 7 ║ Use B5 ║ AA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ General ║ ║ 8 ║ Use B5 ║ 0xAA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ "0x"@ ║ ║ 9 ║ Try to use B6 ║ #NUM! ║ =DEC2HEX(HEX2DEC(B6) * 256) ║ General ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝
╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬═════════════╬═══════════════╬════════════════════════════════════╬═════════╣ ║ 1 ║ ║ Value ║ Corresponding Formula ║ Format ║ ║ 2 ║ Decimal ║ 3,098,743,209 ║ 3098743209 ║ #,##0 ║ ║ 3 ║ Upper Bytes ║ B8B3 ║ =DEC2HEX(INT( B2/2^16 ), 4) ║ General ║ ║ 4 ║ Lower Bytes ║ 11A9 ║ =DEC2HEX(MOD( B2, 2^16 )) ║ General ║ ║ 5 ║ Full Number ║ 0xB8B3_11A9 ║ ="0x" & DEC2HEX(INT( B2/2^16 ), 4) ║ General ║ ║ ║ ║ ║ & "_" & DEC2HEX(MOD(B2, 2^16), 4) ║ ║ ╚═══╩═════════════╩═══════════════╩════════════════════════════════════╩═════════╝
Jika Anda ingin memformat sel sehingga Anda bisa mengetikkan angka desimal dan secara otomatis ditampilkan sebagai angka heksadesimal, maka itu tidak mungkin. Anda bisa memformat sel sebagai teks dan memasukkan angka heksadesimal secara langsung (tetapi perhatikan bahwa Excel tidak dapat menggunakannya untuk perhitungan), atau gunakan DEC2HEX()
dan HEX2DEC()
fungsi untuk mengkonversi antara basis 10 dan basis 16.
Jika Anda perlu melakukan operasi matematika pada angka-angka yang dikonversi menjadi hex, pertama-tama ubahlah menjadi desimal, lakukan operasi, kemudian konversikan kembali ke hex.
Misalnya, sel A1
memiliki nomor hex, seperti yang akan dibuat dari rumus ini:
=DEC2HEX(17)
yang akan ditampilkan sebagai 11, dan sel A2
memiliki rumus:
=DEC2HEX(165)
yang akan ditampilkan sebagai A5
, dan Anda ingin menambahkannya bersama-sama, maka rumus ini akan mendapatkan hasil yang diinginkan:
=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))
yang akan ditampilkan sebagai B6
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)
Rumus REPT mengulangi "0" berdasarkan panjang string hex yang dihasilkan dengan mengubahnya dari desimal, dan panjang yang diinginkan dari string HEX. Dalam contoh ini saya ingin menghasilkan string HEX dengan panjang 4.
Anda kemudian menggabungkan nol terkemuka ke string HEX yang sebenarnya, sehingga menghasilkan nilai HEX dari panjang yang diinginkan.
Keuntungan:
Catatan: Saya menggunakan ini ketika saya menyalin string HEX dan mereka disalin dengan panjang yang berbeda-beda. Saya pertama kali menghasilkan kolom nilai desimal dari nilai-nilai asli yang kemudian dapat saya jalankan melawan formula ini.
Ini adalah solusi yang saya temukan untuk memastikan saya bisa memformat angka hex ini ke dalam format HTML:
SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))
DEC2BIN()
yang mengubahnya menjadi biner. Untuk biner dengan lebar tetap, gunakan sesuatu seperti=TEXT(DEC2BIN(A1), "0000")