
面试考官邢老师为您分享以下优质知识
在二进制数制中,数字“1”本身只占用 1位。以下是具体说明:
二进制是一种数制,仅使用两个数码0和1表示数值,采用逢二进一的规则。每个数码(0或1)都称为“位”,多个位组合成完整的二进制数。例如,八位二进制数`11111111`表示255。
在有符号二进制数(如32位整数)中,最高位(最左边的位)是 符号位
- `0`表示正数
- `1`表示负数。例如,`10000101`中,最高位为1,表示这是一个负数,其余位为补码形式。
位数与数值的关系
- 8位二进制数可表示的范围是`00000000`到`11111111`(即0到255);
- 32位二进制数可表示的范围是`-2^31`到`2^31-1`(即-2147483648到2147483647)。
计算1的个数
若需统计二进制数中1的个数,可通过逐位检查实现。例如,32位整数中1的个数可通过以下代码计算(以C语言为例):
```c
int NumberOf1_Solution1(int i) {
int count = 0;
while (i) {
if (i & 1) count++;
i = i >
>
1;
}
return count;
}
```
该代码通过位运算统计1的个数,时间复杂度为O(1)。
总结:
二进制中的“1”始终占用1位,但在有符号数中需注意符号位的作用范围。