博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的负数的问题
阅读量:6872 次
发布时间:2019-06-26

本文共 782 字,大约阅读时间需要 2 分钟。

在计算机中是使用二制数中的最高位表示来正负。 二进制的储存中都是用的补码,正数的原码、反码和补码相同,负数的原码是最高位为1,反码最高位不变,其余各位取反,补码为其反码+1(重要!!)

首先得知道最高位是哪一位?1个字节的类型,如字符类型,最高位是第7位,2个字节的数,最高位是第15位,4个字节的数,最高位是第31位。

不同长度的数值类型,其最高位也就不同,但总是最左边的那位(如下示意)。

字符类型固定是1个字节,所以最高位总是第7位。 (红色为最高位) 单字节数: 1111 1111  双字节数: 1111 1111 1111 1111  四字节数: 1111 1111 1111 1111 1111 1111 1111 1111  当我们指定一个数量是无符号类型时,那么其最高位的1或0,和其它位一样,用来表示该数的大小。  当我们指定一个数量是有符号类型时,此时,最高数称为“符号位”。为1时,表示该数为负值,为0时表示为正值

 

问:6的反码为什么是-7?

答:

java整型是32bit运算

6的二进制是: 0000 0000 0000 0000 0000 0000 0000 0110 反码是: 1111 1111 1111 1111 1111 1111 1111 1001是个负数,因此计算机存放的时候是先反码:             1111 1111 1111 1111 1111 1111 1111 0110         再加1:             1111 1111 1111 1111 1111 1111 1111 0111 所以答案是:     -7


在计算机中,

负数

除为最高位为

1

以外,还采用补码形式进行表达。

转载于:https://www.cnblogs.com/qq1871707128/p/6055256.html

你可能感兴趣的文章
sql 集合查询 数据更新操作语句
查看>>
静态内部类
查看>>
localStorage使用总结
查看>>
计算一年中的第几天
查看>>
iOS 一句话获取日期和星期几
查看>>
【javascript】Lazy Load, 延迟加载图片的 jQuery 插件
查看>>
Percona XtraDB Cluster高可用与状态快照传输(PXC 5.7 )
查看>>
OBJECT_ID 技巧整理
查看>>
Date日期类,Canlendar日历类,Math类,Random随机数学类
查看>>
java中forName()的作用
查看>>
解决oracle_4031错误的方法
查看>>
C# Out,Ref 学习总结
查看>>
CentOS 7.4如何安装Python3
查看>>
不可承受之轻
查看>>
HTTP状态码大全
查看>>
全国各地所有高校名单数据库 全国所有高校排名
查看>>
比较全的 Java8 9 lambda 应用
查看>>
小白们应该知道,在Eclipse当中怎样在编译页面当中显示行号.
查看>>
实验:传输层:UDP协议 学习笔记
查看>>
SocLib实验——构建基于SocLib的单核Soc
查看>>