求将Big Endian转为Little Endian的C++程序
答案:1 悬赏:40 手机版
解决时间 2021-11-14 02:29
- 提问者网友:容嬷嬷拿针来
- 2021-11-13 01:43
求将Big Endian转为Little Endian的C++程序
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-11-13 02:27
template
T swap_bytes(T x)
{
char(&a)[sizeof(T)] = (char(&)[sizeof(T)])x;
for (int i = 0; i < sizeof(T) / 2; ++i)
{
char t = a[i];
a[i] = a[sizeof(T) - 1 - i];
a[sizeof(T) - 1 - i] = t;
}
return (T &)a;
}
int main()
{
int a = 0x01020304;
int b = swap_bytes(a);
}追问这个我在网上见到过,是十六进制的,不是二进制的。请问如何将二进制
Big Endian文件转为Little Endian
文件?追答我现写的你究竟能在哪见过... 头序和进制无关,你用这个函数把文件里每个int都转一下就是了
T swap_bytes(T x)
{
char(&a)[sizeof(T)] = (char(&)[sizeof(T)])x;
for (int i = 0; i < sizeof(T) / 2; ++i)
{
char t = a[i];
a[i] = a[sizeof(T) - 1 - i];
a[sizeof(T) - 1 - i] = t;
}
return (T &)a;
}
int main()
{
int a = 0x01020304;
int b = swap_bytes(a);
}追问这个我在网上见到过,是十六进制的,不是二进制的。请问如何将二进制
Big Endian文件转为Little Endian
文件?追答我现写的你究竟能在哪见过... 头序和进制无关,你用这个函数把文件里每个int都转一下就是了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯