数据的编码——定点数

基本概念:

定点数是小数点确定的数 ,既 整数  或者纯小数(0~1   十进制的小数 并不能完美的转换为二进制的小数 都会存在精度丢失问题)

原码 反码 补码 都是定点数  定点数的最高位都是符号位        理解原码 反码 补码 可以更好的理解计算机是如何进行加减运算的

原码  原码中的0 有两种表示 

补码  为了更加方便进行加减运算 所发明的能够加快计算机运算速度  其中+ 0 表示0  -0不表示0 (主要是由于存在+0  和-0 的问题 才有的补码,最开始是使用反码计算减法)

反码  原码与补码的中间品,为了更加方便计算补码  都是正数  补码= 反码 = 原码   负数 反码= 原码除符号位取反  补码 = 反码+1   


一般的 负数都是以补码的形式存储在计算机内部的 可以方便进行运算

以 java 为例(都是有符号的 c 中存在专门的修饰词 生命是否有符号) int占4个字节 既 32个bit 最高位为符号位 又因为负数使用补码存储   因此 取值范围 -2^31 ~ 2^31-1

原码 反码 补码 对c c++  go 等语言比较有用(较贴近底层的语言)    java等语言 用处不大 语言已经高度封装过了  

暂时接触不到 等日后学习c 或 go 可能会有更深入的理解(待补充。。。)


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值