无符号整数与有符号整数
对于int类型,无符号可表示的数据范围为0 ~ 2^32-1;对于long类型,无符号可表示的数据范围为0 ~ 2^64-1。
对于有符号整数,以int型举例,表示的数据个数仍是2^32个,但是数据范围不同;最高位成为符号位,0则是非负位,1则是负位。因此,int类型非负范围为0 ~ 2^31-1 ,负数范围为-2^31 ~ -1。
无符号整数的正负转换
取反加一,本文偏算法应用故此处不详细展开。
打印一个数的二进制
利用&以及<<来实现对每一位数字的判断,对于第i位,用掩码1 << i对其进行按位与运算,所得二进制值若为0说明该位是0,不为0则是1。
1 | void printBinary(int num) { |
位运算
常见的位运算符:|、&、^、~、<<、>>、>>>。
1 | printBinary(3); //0000 0000 0000 0000 0000 0000 0000 0011 |