美文网首页
负数怎么存储

负数怎么存储

作者: chile1810 | 来源:发表于2020-08-19 21:02 被阅读0次

1 Java byte类型

byte占用1个字节,8位,第一位是符号位:0表示正数。1表示负数。表示范围 -128~127。

2 为什么要用补码存储

2.1 如果负数用原码表示

编码举例

 127:0111 1111

     2:0000 0010

     1:0000 0001

     0:0000 0000

   -0:1000 0000

    -1:1000 0001

    -2 :1000 0010

  -127:1111 1111

存在问题

1、有两个零表示,浪费1个存储,且有歧义。

2、负数的表示可读性较好,但是对计算机不友好,无法直接使用位运算的加法。加法处理需要区分正数和负数两个分支。

2.2 如果负数用反码表示

反码的定义:按位取反

编码举例

 127:0111 1111

     2:0000 0010

     1:0000 0001

     0:0000 0000

   -0:1111 1111

    -1:1111 1110

    -2 :1111 1101

  -127:1111 1111

存在问题

1、有两个零表示

2.3 如果负数用补码表示

补码的定义:按位取反然后加1

编码举例

 127:0111 1111

     2:0000 0010

     1:0000 0001

     0:0000 0000

   -0:1111 1111

    -1:1111 1111

    -2 :1111 1110

   -127:1000 0001

  -128:1000 0000

附录:位的运算符

& 与

| 或

^ 异或

~ 取反

<< 左移

>> 右移

相关文章

  • 负数怎么存储

    1 Java byte类型 byte占用1个字节,8位,第一位是符号位:0表示正数。1表示负数。表示范围 -128...

  • 计算机二进制补码为什么是原码取反加一

    为什么需要补码 在真实世界里,常常需要负数。如果存储在存储设备中的最小值为0,那么计算机如何存储负数呢?这个问题不...

  • #编程基础#计算机怎么存储负数

    计算机中是用二进制来存储数据的。例如用八位二进制来表示数字,便是从00000000到11111111分别与十进制的...

  • Add Two Numbers

    medium, math Question 两个非空链列代表两个非负数。 每个非负数的digits以倒序存储,链列...

  • 补码与反码

    计算机中存储数据 都是以 补码的形式存储 正数: 补码 = 原码 负数 : 对应正数的原码 --> 取反 -...

  • 二进制中1的位数——jzoffer

    位运算是把数字用二进制表示之后,对每一位上0或者1的运算。 负数的存储 十进制负数是以其补码存储在内存上的。验证:...

  • 计算机是如何存储数据的

    看这里 存储数字 整数=>直接转化为二进制存储 负数=>存储二进制形式的补码 小数=>存储二进制形式的浮点数(对小...

  • 负数在计算机中是怎么存储

    今天,发生一件非常有趣的事情。 公司同事问了我一个问题:为什么 2.0 - 1.1 = 0.89999999 呢?...

  • MySQL数据类型

    整形 1、有符号值 代表可存储正数和负数 2、无符号值 代表只能存储正数 浮点型 日期时间型 字符型

  • 负数为什么要用补码来表示?

    上篇文章讲了“负数在计算机中是怎么存储的”。看完之后,应该对原码,反码,补码有了基本的了解了。 今天,我们深入探讨...

网友评论

      本文标题:负数怎么存储

      本文链接:https://www.haomeiwen.com/subject/qvidjktx.html