[英]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.