自学Java。请教一个关于redis数据类型型Byte的问题,为什么第一种会损失精度,而第二种不会?

版权声明:本文为博主原创文章未经博主允许不得转载。 /zc_ad/article/details/

1.八中redis数据类型型的分类如下:

第四类:字符型 char

2.各种基本redis数据类型型所占的字节:

双精度类型(双精度)  8

3.整型各基本redis数据类型型的取值范围

因为1byte = 8Byte (例如将3byte转化为二进制为: ,切记第一位为符号位即0代表+,1代表-剩下的七位是数据位)

所以byte取值范围是:-2^7~2^7-1,即:-128~127(因为0也包括在内所以在正数范围是2^7-1)

float和double的范围是由指数的位数来决定的。float的指数位有8位而double的指数位有11位,分布如下:

负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数也即决定了浮点数的取值范围。

float和double的精度是由尾数的位数来决定的浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”由于它是不变的

,故不能对精度造成影响

float:2^23 = 8388608一共七位,这意味着最多能有7位有效数字但绝对能保证的为6位,也即float的精度为6~7位有效数字;

}

今天用redis存储发现客户端jedis提供的存储方法中存储的类型只有String和byte数据,没有能够存储对象的网上发现可以序列化存储对象。这就开始了我第一次序列化之旅


}
    二进制存储、java序列化传输、IO连接數高、连接频繁
* 将列表 source 中的最后一个元素(尾元素)弹出并返回给客户端
}

我要回帖

更多关于 数据类型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信