gpt4 book ai didi

c++ - Qt 是否有办法将字节转换为 int,反之亦然?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:27 24 4
gpt4 key购买 nike

我正试图找到一个 Qt 函数,它可以将字节转换为 int,其字节顺序与我在下面使用的相同。我觉得我肯定是在重新发明轮子,而且 Qt 库中一定已经有一些东西可以做到这一点。存在吗?

// TODO: qt must have a built in way of converting bytes to int.
int IpcReader::bytesToInt(const char *buffer, int size)
{
if (size == 2) {
return
(((unsigned char)buffer[0]) << 8) +
(unsigned char)buffer[1];
}
else if (size == 4) {
return
(((unsigned char)buffer[0]) << 24) +
(((unsigned char)buffer[1]) << 16) +
(((unsigned char)buffer[2]) << 8) +
(unsigned char)buffer[3];
}
else {
// TODO: other sizes, if needed.
return 0;
}
}

// TODO: qt must have a built in way of converting int to bytes.
void IpcClient::intToBytes(int value, char *buffer, int size)
{
if (size == 2) {
buffer[0] = (value >> 8) & 0xff;
buffer[1] = value & 0xff;
}
else {
// TODO: other sizes, if needed.
}
}

编辑:数据总是大端(无论什么操作系统),所以例如 101 将是 [0, 0, 0, 101] 而 78000 是 [0, 1, 48, 176].

最佳答案

以下功能似乎符合您的需求:

来自: #include <QtEndian>

关于c++ - Qt 是否有办法将字节转换为 int,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11370396/

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