将整数拆分并存储为两个字节
Posted
技术标签:
【中文标题】将整数拆分并存储为两个字节【英文标题】:Split and store an integer into two byte 【发布时间】:2021-03-01 22:57:07 【问题描述】:我正在开发嵌入式系统,我只有 2 字节的存储空间。我需要在这 2 个字节中存储一个 JSON 响应。 JSON 响应是一个包含 2 位数字的字符串。如何将字符串转换为无符号整数拆分并保存到这 2 个字节中。我正在使用 C#:
var 结果 = "16";
我需要将其转换并存储为 2 个字节。
【问题讨论】:
var x = short.Parse(results)
?
所以我做了这个操作。一个短是2个字节。我需要能够将其拆分并保存为 2 个字节的数据,而这些字节不在一起。他们是分开的。所以通过拆分,我可以将数据保存在这 2 个字节的插槽中
... 后跟var b1 = (byte)(x & 0xFF); var b2 = (byte)(x >> 8);
这能回答你的问题吗? Good way to convert between short and bytes?
你的数字是十进制还是十六进制?
【参考方案1】:
由于您的值只有 2 位长,您只需要 1 个字节来存储它。 您只需调用 Byte.Parse("16") ,您将获得 16 作为一个字节。 然后,您可以将字节存储在任何您想要的位置。
【讨论】:
【参考方案2】:@TheBlueOne 所说的 - 一个两位数,即使十六进制只需要 1 个字节 - 但对于更大的数字,您可以使用 BitConverter.GetBytes.
var s2 = "FF01";
var n = Convert.ToUInt16(s2, 16);
var bytes = BitConverter.GetBytes(n);
//bytes[0] = 1
//bytes[1] = 255
【讨论】:
以上是关于将整数拆分并存储为两个字节的主要内容,如果未能解决你的问题,请参考以下文章
Telegraf/InfluxDB - 将整数拆分为位或布尔值
如何阅读管道分隔线 |来自一个文件并在两个不同的 ArrayList 中拆分整数