gpt4 book ai didi

c++ - 使用 memcpy、endian 将 unsigned long 转换为 std::vector?

转载 作者:行者123 更新时间:2023-11-28 02:51:03 29 4
gpt4 key购买 nike

好吧,我正在尝试将 unsigned long 转换为 char vector 。

std::vector<char> out(1024);
while(n < length)
{
for(int = 0; i < 32; i++)
{
//code...
unsigned long v0 = 0x9514a327;
//code...
}
memcpy( &out[n], &v0, sizeof( v0 ) );
}

out 在 while 循环中动态填充(out 存储 v0 的值)。我的问题是,订单已更改为:

out[0] = 0x27
out[1] = 0xa3
out[2] = 0x14
out[3] = 0x95

但我需要:

out[0] = 0x95
out[1] = 0x14
out[2] = 0xa3
out[3] = 0x27

我怎样才能以优雅的方式解决这个问题?

最佳答案

优雅而快速的方法是避免使用 memcpy() 并通过位移直接从 long 中分配字节。你得到相同的 char - 数组,甚至独立于主机字节顺序!

关于c++ - 使用 memcpy、endian 将 unsigned long 转换为 std::vector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037399/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com