在 Objective-C 中如何将 int 转换为 byte?

发布于 2024-08-29 10:29:17 字数 78 浏览 4 评论 0原文

我有一个 int 值需要转换为字节数组。 你如何在 Objective-C 中做到这一点?有没有方法可以做到这一点?

谢谢你,

I have an int value which needs to be converted into a byte array.
How do you go about doing this in Objective-C? Are there methods to do this?

Thank you,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

为你拒绝所有暧昧 2024-09-05 10:29:17

通过什么方式转换的?您想要小端、大端还是本机字节顺序?如果您希望它采用本机字节顺序,那么您需要做的就是:

int val = //... initialize integer somehow
char* bytes = (char*) &val;
int len = sizeof(int);

也就是说,操作整数字节的最佳方法是进行按位运算。例如,要获取最低位字节,可以使用 val&0xFF,要获取下一个字节,可以使用 (val>>8)&0xFF,然后使用 (val>> 16)&0xFF,然后(val>>24)&0xFF,等等。

当然,这取决于你的数据类型的大小。如果你做这些事情,你真的应该包括 <inttypes.h>;,并使用uint8_tuint16_tuint32_tuint64_t,具体取决于您想要多大的整数;否则,您无法可靠地使用更大数量的字节。

Converted in what way? Do you want it in little endian, big endian, or native byte order? If you want it in native byte order, then all you need to do is:

int val = //... initialize integer somehow
char* bytes = (char*) &val;
int len = sizeof(int);

That said, the best way to manipulate the bytes of an integer is to do bitwise operations. For example, to get the lowest order byte, you can use val&0xFF, to get the next you use (val>>8)&0xFF, then (val>>16)&0xFF, then (val>>24)&0xFF, etc.

Of course, it depends on the size of your data type. If you do those kinds of things, you really should include <inttypes.h>;, and use uint8_t, uint16_t, uint32_t, or uint64_t, depending on how large an integer you want; otherwise, you cannot reliably play around with larger numbers of bytes.

吲‖鸣 2024-09-05 10:29:17

我怀疑您想要做的是将这个字节数组传递给 NSMutableData 对象。您只需传递地址 &val

示例:

[myData appendBytes:&myInteger length:sizeof(myInteger)]; 

此链接更完整并处理字节顺序:

Append NSInteger to NSMutableData

I suspect that what you want to do is to pass this byte array somewhere possibly to a NSMutableData object. You just pass the address &val

Example:

[myData appendBytes:&myInteger length:sizeof(myInteger)]; 

This link is more complete and deals with endianness:

Append NSInteger to NSMutableData

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文