如何在Excel中显示地址"0x"数据格式和地址计算?
- 2026-11-05 22:37:56


在嵌入式软件开发中,需要对内存进行规划和统计,时常需要计算出存储参数的地址,并且在excel中进行相关的地址计算。今天主要是以实际的例子介绍地址数据格式显示和地址计算相关的函数操作。

1."0x"数据格式显示
在 Excel 中让单元格输入 800D0000,显示为 0x800D0000,用自定义单元格格式即可:
选中要设置的单元格或整列
按
Ctrl + 1打开“设置单元格格式”选择 数字 → 自定义
在“类型”里输入:
"0x"@点“确定”
单元格里输入:
800D0000就会显示为:
0x800D0000说明:
"0x"表示固定显示前缀0x@表示单元格里的文本内容这种方式只改变显示效果,编辑栏里的实际值仍然是
800D0000
如果你希望实际值也变成 0x800D0000,可以用公式:
="0x"&A1或者直接输入:
0x800D0000





2.EXCEL表格正确把16进制转为10进制
在 Excel 中把 16 进制正确转为 10 进制,推荐用 DECIMAL 函数(Excel 2013 及以上版本),它会按无符号数处理,不会把最高位当成符号位。
假设 16 进制数据在 A1:
=DECIMAL(A1,16)结果是:2148335616

2. 如果 A1 带 0x 前缀,如 0x800D0000
先用 SUBSTITUTE 去掉 0x:
=DECIMAL(SUBSTITUTE(A1,"0x",""),16)结果同样是:2148335616


3.可以使用下列这个公式进行转换:
=HEX2DEC(RIGHT(A3,LEN(A3)-2))其中,RIGHT(A3,LEN(A1)-2)用于去掉前两个字节口,A1代表十六进制数所在的单元格。

地址计算


3.相关的excel函数
DECIMAL 函数语法:DECIMAL(text, radix)
text:必需。要转换的文本字符串。可以是数字、字母组合,长度不能超过 255 个字符。不区分大小写。
radix:必需。基数,必须是整数,范围为 2 到 36。
返回:将指定基数的文本转换为十进制数。
示例:=DECIMAL("800D0000",16) 返回 2148335616。
注意:Excel 2013 及以上。如果 text 不是有效数字,返回 #NUM! 或 #VALUE!。如果 radix < 2 或 > 36,返回 #NUM!。结果超过 15 位有效数字会丢失精度。
HEX2DEC 函数语法:HEX2DEC(number)
number:必需。要转换的十六进制数。最多 10 个字符(40 位)。最高位为符号位,最高位为 1 表示负数(二进制补码)。如果 number 不是有效的十六进制数,返回 #NUM!。
返回:十进制数。
示例:=HEX2DEC("800D0000") 返回 -2146631680(因为最高位为 1,被解释为负数)。=HEX2DEC("F") 返回 15,=HEX2DEC("FFFFFFFF") 返回 -1?实际上 HEX2DEC("FFFFFFFF") 返回 -1? 8位 FFFFFFFF 作为 32 位补码是 -1。对。=HEX2DEC("80000000") 返回 -2147483648。所以需要注意。
在旧版 Excel 中可用。分析工具库?在 Excel 2003 中需要加载分析工具库,但现代 Excel 内置。
SUBSTITUTE 函数语法:SUBSTITUTE(text, old_text, new_text, [instance_num])
text:必需。要替换其中字符的文本,或对含有文本的单元格的引用。
old_text:必需。要替换的旧文本。
new_text:必需。用于替换 old_text 的文本。
instance_num:可选。指定要替换第几次出现的 old_text。如果省略,则替换所有出现的 old_text。
返回:替换后的文本。
示例:=SUBSTITUTE("0x800D0000","0x","") 返回 "800D0000"。
注意:区分大小写?SUBSTITUTE 区分大小写。如果 old_text 为空,返回原文本。
IF 函数语法:IF(logical_test, value_if_true, [value_if_false])
logical_test:必需。计算结果为 TRUE 或 FALSE 的任何值或表达式。
value_if_true:必需。logical_test 为 TRUE 时返回的值。
value_if_false:可选。logical_test 为 FALSE 时返回的值。如果省略,则返回 FALSE。
示例:=IF(HEX2DEC(B1)<0, 2^(4*LEN(B1)), 0)
LEN 函数语法:LEN(text)
text:必需。要查找其长度的文本。空格将作为字符进行计数。
返回:文本字符串中的字符个数。
示例:=LEN("800D0000") 返回 8。
运算符 ^(幂运算)语法:number ^ power
number:底数。
power:指数。
返回:number 的 power 次方。
示例:=2^32 返回 4294967296。
注意:Excel 中 ^ 优先级高于乘除?通常高于乘除,低于一元负号?不重要。也可用 POWER 函数:POWER(number, power)。但之前公式用了 ^,可一并列出。
DEC2HEX 语法:DEC2HEX(number, [places])
number:必需。要转换的十进制整数。如果 number 为负数,则忽略 places,返回 10 个字符的十六进制数。如果 number 不是整数,则截尾取整。number 必须介于 -549,755,813,888 和 549,755,813,887 之间。
places:可选。要使用的字符数。如果省略,DEC2HEX 使用必要的最少字符数。places 对于正数有用,用于补前导零。如果 places 不是整数,则截尾取整。如果 places 不是数字,返回 #VALUE!。如果 places 为负,返回 #NUM!。如果 places 小于所需字符数,返回 #NUM!。如果 number 为负数,places 被忽略,返回 10 个字符。
返回:十六进制文本字符串。


