计算机中的二进制
来源:互联网 发布:七爷交友平台知乎 编辑:程序博客网 时间:2024/05/21 06:43
在复习Java基本类型的时候突然遇到的问题
为什么byte型的数据表示的范围是 -128~127呢?我们都知道byte在Java中占一个字节,一个字节也就是八位,简单来说就是八个二进制(电脑只认识0,1 最终都是转化成二进制来识别的)在Java中最高位是用来表示正负数的,0代表正数,1代表负数。byte型的占八位数,有一位是符号位也就是说用来表示实际数大小的也就是7位,那么为什么不是
11111111 ~ 01111111 也就是(-127 ~ 127)呢?
其实在Java中负数不是这么表示的,并不是-127就是127化成二进制然后在前面加一个1表示负数。Java中表示负数是这样的,比如-127,他的负数的二进制的表示方法是 -127的绝对值 127,取127的二进制 01111111,然后取反得到 10000000,然后再加一得到 10000001,这才是-127的二进制表示方法。那么-128怎么来的呢,其实-128就是 10000000,这就是8位数的最小负数的,可以看出在二进制负数中第一位始终是1,然后面的数越大表示这个数越大,后面的数越小表示这个数越小
比如 11111111 表示的是-1,这就是负数中最大的数了,10000000表示-128,这个数最小,-127就是10000001 ,拿出第一位符号位,后面的数比较大小就可以比较出这两个数的大小
那么-129呢,按照负数二进制的方法,应该是129的二进制,10000001,然后取反01111110,然后加一,01111111,可以看到得到的结果最高位是0,0应该表示正数,当遇到这种情况就说明位数不够用了,它是负数应该主动在前面加1,也就是101111111,这个时候就是9位数了,就超出byte的范围了。128也一样,128二进可以制是 10000000, 看到最高一位是1,应该表示负数,可是128是正数,这个时候就要在前面加0,010000000表示128。
- 计算机中的二进制
- 计算机中的二进制
- 计算机中的二进制数及其操作符
- 获取计算机在内存中的二进制表示
- 计算机中的二进制表示-4和5
- 计算机中的二进制与位运算
- 二进制在计算机中的存储方法
- 计算机二进制
- 计算机二进制
- 【二进制】计算机二进制补码
- 将一个整数在计算机中的二进制表示打印出来
- 计算机二进制中的或'|'和异或的区别'^'
- 二进制和计算机
- 计算机为什么使用二进制?
- 计算机与二进制
- 关于计算机二进制补码
- 计算机 十进制 二进制 关系
- 计算机解析二进制机制
- Docker Swarm mode 微服务部署及调用
- 探究斐波那契数列的通项公式
- String类
- ubuntu16.04安装maven
- mybatis实例
- 计算机中的二进制
- 数据结构与算法面试题80道
- eclipse使用之修改字符集
- nginx-upload-module模块实现文件断点续传
- 在 RHEL 7.1 上设置 Mesos/Marathon 集群
- Android意图-Intent详解
- Python学习01_配置环境
- 【OpenCV】配置OpenCV 3.2.0 + OpenCV contrib + eclipse + Cmake3.9 + MinGw(TDM-GCC 5.1)
- 前端开发利器Chrome控制台 console一些用法