【发布时间】:2012-04-27 12:21:06
【问题描述】:
我需要读取前 3 字节数据(24 位)并将其转换为十进制值。 例如。我的前三个字节是 0x00 0x00 0x0A 。 我需要阅读并获得 10 作为值。 我将输入作为字符串(c++ 字符串类)。我如何在 C++ 中做到这一点?
注意:整数值需要遵循大端表示。 我也无法生成输入。
编辑我的代码
用于生成:
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 ...
【问题讨论】:
-
字符串中是否包含十六进制代码(如您在上面键入的内容)或实际的零值字节?
-
@MichaelAnderson 我添加了我尝试过的代码
-
@RandallCook 不,他们将只有位值而不是“十六进制字符串”。我必须读取 24 位。
-
您想将
FF FF FF解释为16777215,还是-1?或者是 -8388607 或 -0? -
@SteveJessop 我希望它是 16777215