繁体   English   中英

将 int 转换为 24 位值是什么意思?

[英]What does it mean to convert an int to a 24-bit value?

我在一个项目中遇到了将 integer 值转换为 24 位值的要求,分为 3 个字节,这个问题在这个问题中得到了回答: How to represent a 5 digit decimal value as a 24 bit value?

但是,我很难理解将 integer 转换为 24 位值的根本含义

IE:

int number = 12345;
            string output = string.Format("[{0}][{1}][{2}]",
                (number & 0xFF).ToString("X2"),
                ((number >> 8) & 0xFF).ToString("X2"),
                ((number >> 16) & 0xFF).ToString("X2"));

整数可以是任意位数,还需要考虑字节顺序负数

假设一个无符号的 32 位数字作为输入,最简单的选择是简单地删除最高有效字节,即 2^25 将转换为 0。您可能希望在转换之前限制该值以避免这种环绕行为。

将数字转换为离散字节的最简单方法应该是Bitconverter.GetBytes()

请注意,由于这些问题,使用 24 位数字有点麻烦,因此在大多数情况下,我建议尽可能使用 32 位或 16 位值。 我所知道的最接近现实世界的用法是 24 位彩色图像。 如果大小是一个问题,那么使用某种形式的压缩通常就足够有效了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM