【发布时间】:2020-12-07 01:21:19
【问题描述】:
我在一个项目中遇到了将整数值转换为 24 位值的要求,分为 3 个字节,在这个问题中得到了回答: How to represent a 5 digit decimal value as a 24 bit value?
但是,我很难理解将整数转换为 24 位值的基本含义
即:
int number = 12345;
string output = string.Format("[{0}][{1}][{2}]",
(number & 0xFF).ToString("X2"),
((number >> 8) & 0xFF).ToString("X2"),
((number >> 16) & 0xFF).ToString("X2"));
【问题讨论】:
-
这有一些微妙之处。请考虑非常具体。谈论“整数”与谈论特定数据类型
int并不完全相同。这些事情当然密切相关,但细微的差别与问题完全相关。你真正要问的是int。 -
请展示 7 个示例输入和输出。
-
技术上,任何小于
16777216(无符号)或8388608(有符号)的整数都是的24位整数。所以“从根本上”,它意味着没有到“将整数转换为24位值”。另一方面,根据您引用的问题,显然它们并不是真正的 24 位值,而是一系列 8 位值,其中首先显示最低有效字节。另一方面,... -
...您“遇到了要求” 在其他一些上下文中,其中 “将 [sic] 整数值转换为 24 位值” i> 可能还有别的意思。我们无法告诉您在这种情况下是什么意思;您需要询问产生需求的人。
标签: c# type-conversion