这个问题和统计32位整数中置位的数量不是重复的。请参见下面Daniel S.的评论。
--
假设有一个变量int x;
,它的大小为4个字节,即32位。
然后我给这个变量赋值x = 4567
(二进制10001 11010111),在内存中它看起来像这样:
00000000 00000000 00010001 11010111
是否有一种方法可以获取有用的位数长度?在我的示例中,位长度为13(我用粗体标记了它们)。
如果使用 sizeof(x)
它会返回4,即整个int
的大小。如何获得表示整数所需的最小位数,而不包含前导的0
?