excel - Excel中一个单词的十六进制值
问题描述
如何让 Excel 2016 将一个字(两个字节)中的十六进制值转换为十进制(0xffff 必须转换为 -1 而不是 65535)?谢谢
解决方案
假设您在单元格 A1 中有 16 位(2 字节)十六进制值(例如“FFFF”),您可以这样做:
=BITXOR(HEX2DEC(A1),2^15)-2^15
这会:
- 将十六进制值转换为无符号十进制(预期的负数范围从 2^15 开始,即高于预期的非负数范围)。
- 反转最高有效位(第 15 位)以交换预期的非负和负范围(此时两个范围仍然是非负的,但现在预期的负范围低于预期的非负范围)。
- 将两个范围向下移动,以便预期的负范围到达其最终目的地低于零,并且预期的非负范围达到其最终目的地在零及以上。
例子:“0”变成0,“7FFF”变成32767,“8000”变成-32768,“FFFF”变成-1。
注意:如果输入值在实际十六进制值之前或之后包含垃圾(例如“0x”),则必须在调用 HEX2DEC 之前删除该垃圾(例如通过执行 MID(A1,3,4))。
推荐阅读
- php - 如何正确地将 KNP Paginator Bundle 的分页居中?
- python - Python:FileNotFoundError 未被 try-except 块捕获
- javascript - 使用 React Native Base 导航
- python - Pydata Seattle - 在 Python 中实施和训练预测性客户生命周期价值模型
- java - 当我的测试失败并且在 chrome 浏览器关闭之前,我如何截图 chrome 浏览器(@After)
- ruby - 在 Ruby 中将实际图像转换为 base64
- python - 检查两个列表之间的公共元素是否顺序相同
- reactjs - 为什么我的 React 应用程序链接中的“to”道具未定义?
- php - 如何在更新查询中使用变量
- android - 为什么我在 Kotlin 片段中得到一个空数组列表?