1.二进制计数法的概念
人们在日常生活中和生产实践中,我们接触到越来越多的数字,创造了分组计数的制度.而我们的生活中,一般采用了"满十进一"的十进制计数法,
我们现在已经熟悉并经常运用这一种计数法了.但也有采用其他计数法.如二进制,六进制,十六进制等计数法.现在就来讲一讲"二进制"和"十进制"的关系
2.十进制和二进制数的互化
(1)化十进制数为二进制数
<1>比较小的十进制数为二进制数可以用观察法.
例:化45为二进制数
因为2的0次方,1次方,2次方~~~10次方分别等于1,2,4,8,16,32,64,128,256,512,1024.
所以 45=32+8+4+1=2⑤+2③+2②+1=1*2⑤+0*2④+1*2②+0*2①+1*1=101101(二进制)
<2>一般化法
利用短除法(通常叫做"二除取余法")
(2)化二进制数为十进制数
这是比较方便的,只需把二进制是写成展开式;计算即得.
3对于有符号的数
二进制的最高位时符号位:0表示正数,1表示负数
正数的原码,反码,补码都一样
负数的反码=它的原码符号位不变,其它位取反
负数的补码=它的反码+1
0的反码,补码都是0
java中的数都是有符号的
在计算机运算的时候,都是以补码的方式来运算的。
java中有4中位运算,分别是按位与&,按位或|,按位异或^,按位取反。
&:两位全为1,结果为1
|:两位有一个为1,结果为1
^:两位有一个为1,一个为0,结果为1
取反:0取反位1,1取反位0
java中有3个移位运算符
>> 算术右移:低位溢出,符号位不变,并用符号位补溢出的高位
<<算术左移:符号位不变,低位补0
>>>逻辑右移:低位溢出,高位补0