将 Shorts 数组类型转换为 bytearray
我正在尝试将 qt 中的短数组转换为字节数组。 是否有任何功能可用于进行铸造。 如果我必须使用 const char * 进行转换我应该怎么做。 有没有比使用重新解释演员更好的方法
提前致谢。
I am trying to convert a short array into a bytearray in qt.
is there any function available to do the casting.
if i have to use const char * for conversion how should i do it.
and is there any better way than to use reinterpret cast
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您只需将字节指针转换为短数组即可将短数组转换为字节
,然后使用指针遍历数组中的所有字节,在其中将
*p
复制到字节数组,如果你希望。You can convert an array of short to bytes simply by casting a byte pointer to the short array
then use the pointer to go through all the bytes in the array where you copy the
*p
to a byte array if u wish.您可以使用
reinterpret_cast
来执行此操作,但请注意,您正在使代码变得非常特定于体系结构。使用reinterpret_cast
并不能完全保证你的代码是错误的,但它应该敲响警钟。如果您想要做的是,给定一个 Shorts 数组,生成一个具有相同值的字节数组,您可能想要这样:
如果您使用 Reinterpret_cast,则包含 20、30、40 的 Short 数组将看起来像一个数组包含 0, 20, 0, 30, 0, 40(或者可能是 20, 0, 30, 0, 40, 0,具体取决于体系结构)的字符。
You can use
reinterpret_cast
to do this, but be aware that you are making your code very architecture specific. Use ofreinterpret_cast
doesn't exactly guarantee your code is wrong, but it should be ringing warning bells.If what you want to do is, given an array of shorts, produce an array of bytes with the same values, you probably want this:
if you use reinterpret_cast, your short array containing say 20, 30, 40, will look like an array of chars containing 0, 20, 0, 30, 0, 40 (or possibly 20, 0, 30, 0, 40, 0, depending on architecture).