【发布时间】:2017-04-05 09:32:15
【问题描述】:
假设我有 2 个变量:
int var1 = 1; //1 byte
int var2 = 2; //1 byte
我想组合这些并编码为 32 位无符号整数 (uint32_t)。通过组合它们,它将是 2 个字节。然后我会用 2 个字节的 0 填充填充剩余空间。这是写入文件,因此需要这种特定类型的编码。
所以通过结合上面的示例变量,我需要的输出是:
1200 //4 bytes
【问题讨论】:
-
您是说要将第一个值上移 24 位,第二个值上移 16 位吗?即使这是您的要求,除非您显示十六进制值,否则显示的值也不会是 1200...
-
an
int在大多数系统上不是 1 字节 ... -
换句话说:试着去实现你到底想要达到什么。在这个过程中,你可能会自己找到答案。大多数编程都是准确地指定您想要做什么,然后将其转换为代码。
-
回答我这个问题:你认为数字 12345(12345)有 5 个字节吗?
-
然后将它们写入字节。或者您可以通过将第一个值左移 24 并将第二个值左移 16 将它们“组合”起来,然后将结果或结果转换为 int,然后写入完整的 int。