c# - 将 Int32 转换为 24 位有符号整数

标签 c# integer endianness bitconverter

我需要将 Int32 值转换为 3 字节(24 位)整数。字节顺序保持不变(小),但我不知道如何适本地移动标志。这些值已经被限制在适当的范围内,我只是不知道如何将 4 个字节转换为 3 个字节。使用 C# 4.0。这是为了硬件集成,所以我必须有 24 位值,不能使用 32 位值。

最佳答案

如果要进行这种转换,只需删除四字节数字的最高字节即可。二进制补码表示将正确处理符号。如果您想将 24 位数字保存在 Int32 变量中,您可以使用 v & 0xFFFFFF 来获取较低的 24 位。我看到你对字节数组的评论:如果数组中有空间,写下数字的所有四个字节,只发送前三个;不过,这是特定于小端系统的。

关于c# - 将 Int32 转换为 24 位有符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918525/

相关文章:

c# - 初始化字符串的格式不符合从索引 0 开始的规范

c# - 从 JSON 架构创建 WPF UI

python - 测试非整数(小数和字符串)

java - 快速切换位顺序的方法?

c# - 使用 WinRT 不引发暂停事件

c# - 为整个项目配置 Log4Net

ruby - 我如何在 Ruby 中始终向下舍入数字?

objective-c - 离开应用程序后,NSUserDefaults将不会加载

c - 尝试编写字节序检测程序,但无法比较 char 值

c - 我应该如何读取 C 中的逆序字节?