我想要將 Microsoft Excel 2007 中的單元格格式設為十六進制,但我不知道如何執行此操作。
是否有內建方法可以將單元格的基數從 10 更改為 16?
答案1
前面提到,公式 =DEC2HEX(A1) 轉換為十六進位,DEC2HEX(A1,8) 轉換為帶有 0 前綴的十六進位表示 32 位元。雖然新增前導0 可以使數字更具可讀性,特別是如果您使用定點字體,但當數字中的所有數字恰好為0-9 時,十六進位和十進位版本可能會混淆(例如327701=50015 )。
一項改進是添加“0x”前綴。有兩種方法可以做到這一點。 ="0x"&DEC2HEX(A1,8) 可以解決問題,但它將字段更改為文字字段,因此不能再輕鬆地在公式中使用。另一種方法是使用自訂格式。如果將自訂格式“0x”@套用至儲存格,則該儲存格的值仍然可以在方程式中使用。例子:
╔═══╦════════════════╦══ ══════════ ══════════════╦═══════════ ║ ║ A ║ B ║ ║ ║ ╠═══╬════════════════╬═ ══════════ ══════════════╬═══════════ ║ 1 ║ ║ 數值 ║ 對應公式 ║ 數字格式 ║ ║ 2 ║ 十進位 ║ 11162790 ║ 11162790 ║ 一般 ║ ║ 3 ║ 十六進位 ║ AA54A6 ║ =DEC2HEX(B2) ║ 常規 ║ ║ 4 ║ 前導 0 ║ 00AA54A6 ║ =DEC2HEX(B2,8) ║ 常規 ║ ║ 5 ║ 文字 0x 字首 ║ 0x00AA54A6 ║ =DEC2HEX(B2,8) ║ "0x"@ ║ ║ 6 ║ 文字 0x 前綴 ║ 0x00AA54A6 ║ ="0x" & DEC2HEX(B2,8) ║ 常規 ║ ║ 7 ║ 使用 B5 ║ AA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ 一般 ║ ║ 8 ║ 使用 B5 ║ 0xAA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ "0x"@ ║ ║ 9 ║ 嘗試使用B6 ║ #NUM! ║ =DEC2HEX(HEX2DEC(B6) * 256) ║ 一般 ║ ╚═══╩════════════════╩═ ══════════ ══════════════╩═════════════════
然而,具有不同位數的大數字仍然難以閱讀,因此我喜歡在十進制數字中添加逗號,在十六進制數字中添加“_”。首先需要取得數字的高16位和低16位。可以使用 = INT( A1 / 2^16 ) 檢索 32 位數字的高 16 位。除以 2^16 的作用類似右移 16 位,INT 會刪除小數餘數。 MOD可用於取得任意32位或64位數字的低16位; =MOD(A1, 2^16)。 MOD 有效地取回餘數,即低 16 位元。下面的表格顯示了這一點的實際情況。
╔═══╦═════════════╦═════ ══════════ ═════════════════════╦════ ║ ║ A ║ B ║ ║ ║ ╠═══╬═════════════╬════␕␕␕␕␕␕␕␕␕␕ ══════════ ═════════════════════╬════ ║ 1 ║ ║ 數值 ║ 對應公式 ║ 格式 ║ ║ 2 ║ 十進位 ║ 3,098,743,209 ║ 3098743209 ║ #,##0 ║ ║ 3 ║ 高位元組 ║ B8B3 ║ =DEC2HEX(INT( B2/2^16 ), 4) ║ 一般 ║ ║ 4 ║ 低位元組 ║ 11A9 ║ =DEC2HEX(MOD( B2, 2^16 )) ║ 一般 ║ ║ 5 ║ 全數 ║ 0xB8B3_11A9 ║ ="0x" & DEC2HEX(INT( B2/2^16 ), 4) ║ 一般 ║ ║ ║ ║ ║ & "_" & DEC2HEX(MOD(B2, 2^16), 4) ║ ║ ╚═══╩═════════════╩════␕␕␕␕␕␕␕␕␕␕␕␕␕␕␕␕ ══════════ ═════════════════════╩════
順便說一句,我必須非常感謝https://ozh.github.io/ascii-tables/。我使用該連結創建了 ASCII 文字表。我剛剛將表格從 Excel 電子表格複製到其輸入部分,它會自動建立漂亮的 unicode 文字佈局。
答案2
如果您想設定儲存格格式,以便可以輸入十進位數字並自動將其顯示為十六進位數字,那麼這是不可能的。您可以將儲存格格式設為文字並直接輸入十六進位數字(但請注意,Excel 無法使用這些數字進行計算),也可以使用DEC2HEX()
和HEX2DEC()
函數在 10 進位和 16 進位之間進行轉換。
答案3
如果要轉換的儲存格A1
使用=DEC2HEX(A1)
.
答案4
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)
REPT 公式根據從十進位轉換產生的十六進位字串的長度以及所需的十六進位字串長度重複「0」。在此範例中,我希望產生長度為 4 的十六進位字串。
然後將前導零連接到實際的十六進位字串,從而產生所需長度的十六進位值。
優點:
- 輕鬆將公式複製到其他工作表。只有兩個單元格引用十進制值 B3 來重新分配。
- Excel 將此公式的結果視為十六進位值。您也可以添加前綴“0x”,但我認為沒有必要。
注意:當我複製十六進位字串時,我會使用它,並且它們會以不同的長度複製。我首先根據原始值生成一列十進制值,然後可以對其運行此公式。