网速
家里的宽带声称是200M的,你以为是每秒可以传输200M数据?
其实是200Mbps(megabits per second,200兆/百万bit每秒)
。注意这里是bit
,需要/8转为字节byte
,才是平时认知的兆字节。
即25MB/s的传输能力。
补码运算
二进制运算的演化过程:
这样,-1(1111)+1(0001)=0(10000)
溢出最高位,剩下的即为0
同理-8(1000)+7(0111)=-1(1111)
(-1)*(-1)=?
正数,三码合一
计算机底层都以补码的方式储存数据!
总结:
-
正数(如7)=负数(如-7)取反+1,负数(如-7)=正数(如7)取反+1
-
补码运算有溢出风险,运算结果只取范围之内的
-
n位二进制补码最多能表示2的n次方个数,范围是-2(n-1)~2(n-1)-1
PS: 32位操作系统的二进制补码能表示的数的范围:-2G~2G-1 (1G=1024的3次方) -
计算机中,二进制转十进制:以0开头的直接转;以1开头的,先取反,再+1,再转十进制,最后加负号。
-
十进制转二进制,负数也是同理,先得到正数的,最后取反加1。
-
十进制手算转二进制:
十六进制
十六进制是二进制的简写,方便书写二进制数,每一位的取值是0~f。。
Binary、Octal、Decimal、Hex分别是2、8、10、16进制(写法分别是0b开头,0开头,直接写,0x放前面,或者H放后面)
int a = 99;
System.out.println(a +"的二进制是: "+ Integer.toBinaryString(a));//99的二进制是: 1100011
System.out.println(a +"的十六进制是: "+ Integer.toHexString(a));//99的十六进制是: 63
- 二进制转换成十六进制的方法是,取四合一法。因为二进制的每四位可合为十六进制的一位。
- 十六进制转为二进制,反过来就是一分四,即十六进制数的每一位可分成二进制数的四位。
- Java 二进制与十六进制转换