我正在尝试计算十六进制数中可用的位数。例如: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/