我正在尝试计算十六进制数中可用的位数。例如:0x00000001应将计数返回为8

谁能建议最有效的方法是什么?我尝试将其转换为CString并使用'GetLength()'获得长度,但这似乎在这里不起作用。

编辑:对不起,如果我忘了提及,我存储十六进制数字的变量是无符号的缩写。

试过这个:

unsigned short number;
CString HexValue;
HexValue.Format("%.8x",number);     // number = 0000000000000000, 16 0's
HexValue = "0x" + HexValue;
int length = HexValue.GetLength() - 2; // returns an 8 here

最佳答案

由于每个字节包含两个十六进制数字,请尝试使用整数类型的变量n

sizeof(n)*CHAR_BIT/4

关于c++ - 计算十六进制数字中的位数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7834103/

10-11 08:23