gpt4 book ai didi

c++ - 如何将 24 位(整数值)转换为字符串,反之亦然?

转载 作者:行者123 更新时间:2023-11-27 23:24:45 25 4
gpt4 key购买 nike

我需要读取前 3 个字节数据(24 位)并将其转换为十进制值。 例如。我的前三个字节是 0x00 0x00 0x0A 。我需要阅读这个并获得 10 作为值(value)。我会将输入作为字符串(C++ 字符串类)获取。我如何在 C++ 中做到这一点?

注意:整数值需要遵循Big endian表示。 我也无法生成输入。

编辑我的代码
用于生成:

  stringstream lss ;
int lNo =32 ; // I know its 32 bit integer value
lss<<lNo ; //string to int
// got output in lss.str() as 32 . size of the string is 2 .
// Expected out put is 0x00000020 size of the string should be 4 ..

所以我也尝试了下面的代码

 stringstream lss ;
char a[3] ={0x00,0x00,0x0A} ;
lss<<a ;
// this time output is empty string ...

最佳答案

我想你想要的是这个:

unsigned char a[3] = { 0x00, 0x00, 0x0A };
int x = ((int)(char)a[0] << 16) | ((int)a[1] << 8) | a[2];`.

a 数组必须是无符号字符,这样在将它们左移之前将它们转换为整数时不会对它们进行符号扩展。这不适用于第一个,因为它可能有一个有效的符号位。祝你好运。

关于c++ - 如何将 24 位(整数值)转换为字符串,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10169580/

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