如何以十六进制格式化 Microsoft Excel 2007 单元格?

Wil*_*mKF 31 microsoft-excel-2007 hexadecimal cell-format

我想在 Microsoft Excel 2007 中以十六进制格式格式化单元格,但找不到如何执行此操作。

是否有内置方法可以将单元格的基数从 10 更改为 16?

小智 23

如前所述,公式=DEC2HEX(A1) 转换为十六进制,而DEC2HEX(A1,8) 转换为十六进制,前缀为0 表示32 位。虽然添加前导 0 使数字更具可读性,特别是如果您使用定点字体,但当数字中的所有数字恰好是 0-9(例如 327701=50015)时,十六进制和十进制版本可能会混淆。

一个改进是添加“0x”前缀。有两种方法可以做到这一点。="0x"&DEC2HEX(A1,8) 可以解决问题,但它会将字段更改为文本字段,因此无法再轻松地在公式中使用。另一种方法是使用自定义格式。如果将自定义格式“0x”@ 应用于单元格,则该单元格的值仍可用于等式。例子:

?????????????????????????????????????????????????????? ????????????????????????????????????
? ? 一种 ?乙?? ?
?????????????????????????????????????????????????????? ????????????????????????????????????
? 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 位。这是一个表格,显示了这一点。

?????????????????????????????????????????????????????? ????????????????????????????????????
? ? 一种 ?乙?? ?
?????????????????????????????????????????????????????? ????????????????????????????????????
? 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 文本布局。


Ind*_*rek 16

如果您想格式化单元格以便您可以输入十进制数并自动将其显示为十六进制数,那么这是不可能的。您可以将单元格格式化为文本并直接输入十六进制数字(但请注意,Excel 不能使用这些数字进行计算),或者使用DEC2HEX()HEX2DEC()函数在基数 10 和基数 16 之间进行转换。

  • 在德语本地化的 Excel 2013 上,DEC2HEX 和 HEX2DEC 导致错误消息 #NAME?。通过 Office 帮助,我可以发现这些函数分别称为 DEZINHEX 和 HEXINDEZ。 (2认同)

pnu*_*uts 8

如果要转换的单元格是A1使用=DEC2HEX(A1).

  • 您可能希望在十六进制值中添加前导“0x”。使用 `="0x"&DEC2HEX(A1,4)` 得到类似于 `0x1AF2` 的结果。 (4认同)