二进制一些问题整理

1、二进制的加减乘除的计算

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2、二进制的负数表示
补码表示法:取反加一
比如:-1 :1的原码是00000001,取反11111110,加一就是11111111
-127:127的原码是11111110,取反00000001,加一就是10000000

3、为什么负数采取这种奇怪的表示呢
计算机只能做加法,
5-3其实本质上是5+(-3)
00000101+11111101=00000010
而127+1就是会变成-128

4、十六进制的产生原因
二进制书写太长,为了简化写法

5、十六进制的表示
在数字前面加上0x,比如123的十六进制表示就是0x7B,123=7*16+11
java7开始支持二进制常量
int a = 0b11001

6、小数计算为什么会出错呢
计算机采用的是二进制的运算,二进制只能表示2的多少次方和的数,所以有些数就会不精确,其实十进制对1/3也是没有办法表示的

7、计算机为什么采用二进制的而不是十进制的
计算机的电子元器件只能表示两种状态,低压和高压,即对应的是0和1

8、不精确的小数怎么办呢
java的BigDecimal或者将小数变成整数后在处理

猜你喜欢

转载自blog.csdn.net/zyt807/article/details/80115064