两种转化方法要记牢
小数部分
二进制数码表格
Java与二进制 10代表二进制 0=0 1=1 2=10 3=11 4=100 5=101{二进制数只有0和1 逢二进一 二进制优点: 1:二进制适合逻辑运算 2:技术容易实现{高电压=1,低电压=0} 3:传输可靠性高{} 4:适合逻辑运算{1代表真,2代表假} 5:运算规则简单{1*1=1 1*0=0 0*1=0 0*0=0 规则越简单执行效率越高} 二进制缺点 <对人类而言> 1:表示数位事数太多 2:可读性差,难于记忆 3:储存空间占用多 4:逻辑只能代表 是 否和未知
BigDecimal的简单使用:
summary
java中boolean用int来替代,占用了4个字节,32位
看一下UTF-8出现了
看看这个字符集的由来,也是对底层有更好的计算机认知
ASCII对于英语和拉丁语系的国家够用了,但是对于中文日语这样的不够,于是GBK是2个字节16位的。
通过这种方式,把字符和数字对应起来
这个看一下
用b4的方式将double转化成bigdecimal
bigdecimal需要我们好好了解,是由BigInteger和scale两部分组成
这个玩意怎么计算出来的,有空可以了解一下
要了解下浮点数,然后了解下这个float和double一直但是没有真正的了解过
大端和小端模式没听懂居然
Bigdecimal注意事项
bigdecimal在做除法的时候除不尽会报错,要指定位数等
BigDecimal的一些构造方法
十进制中的0.1在二进制中是无限循环的所以用double是拿不到精确值的。转成bigdecimal也就没意义
所以用bigdecimal去计算要用字符串去构造
右位移运算
位移这一块以前学的不好这一次再好好看看
计算机在运算时候使用补码,正好可以把溢出的部分舍去。得到正确的值
机器数最高位如果是1,则是负数,如果我就要用到最高位呢,可咋办
比特是计算机信息的最小单位比如0或者1
byte一个字节就是8个bit 比如0000 0001
将2,8,16转化成10进制的Java方法
直接用Java方法显示
这一段规则也可以看一下
java中的二进制,8进制和16进制
是不是就是这个原因导致的无法精确计算