-
Java复习随笔-为什么一个字节(byte)的最小值是-128最大值是127?
2020-11-06 22:32:57想要弄清楚这个问题,首先要明确计算机用补码存储整形数据 计算机-原码 就是二进制定点表示法,即最高位为符号位:“0”表示正,“1”表示负,其余位表示数值的大小。 该数字不进行其他操作时数字最原始的二进制...想要弄清楚这个问题,首先要明确计算机用补码存储整型数据
计算机-原码
就是二进制定点表示法,即最高位为符号位:“0”表示正,“1”表示负,其余位表示数值的大小。
该数字不进行其他操作时数字最原始的二进制表示, 对于原码来说,绝对值相等的正数和负数只有符号位不同。计算机-反码
正数的反码与其原码相同;
负数的反码是对其原码逐位取反,但符号位除外。(只需要将原码除符号位以外的位数取反,即0改为1,1改为0)计算机-补码
正数的补码与其原码相同;
负数的补码是在其反码的末位加1;
现在的计算机都用补码存储整形数值。计算机为什么有反码和补码?
有人会有疑惑为什么要用反码,补码,不直接用原码呢?
先搞清楚一点反码、补码、原码是针对二进制数而言,计算机若用原码相加减,正数加正数不会出错,然而正数和负数原码相加就会出错。说白了,补码、反码就是为了简化减法而来的,将减号化为负数后再将负数化为补码求加法,就跟正数没关系了!
不管是正整数还是正小数,原码,反码,补码都全部相同。计算机中所有数都是以补码形式存储的。
1.10+(1)时:1010 + 0001 = 1011,即11。
2.10+(-1)时:00001010 + 10000001 = 10001011 ,即 -11 (原码参与加法运算)
3.10+(-1)时:00001010 + 11111111 = 00001001,即 9 (补码参与加法运算)由此
byte的最大值
八位二进制中正数最大是0111 1111(第一位是符号位),所以byte正数范围是(0-127),共有2^7=128个数值;byte的最小值
八位二进制中负数计算需要用反码末位+1得到补码,所以1111 1111补码就是1000 0001=-1,一直到1000 0001补码是1111 1111= -127,而1000 0000的补码是1000 0000也就是-0,没有意义,此处计算机将它计为-128,故一个字节的取值范围是[-128,127]。 -
Byte 一个字节的数据大小范围为什么是-128~127
2018-07-18 23:17:42一个字节是8位,最高位是符号位,最高位为0则是正数。最高位为1则是负数 如果一个数是正数,最大数则为:01111111,转为十进制为127, 如果一个数是负数,按照一般人都会觉得是11111111,转为十进制为-127, 但是...一个字节是8位,最高位是符号位,最高位为0则是正数。最高位为1则是负数
如果一个数是正数,最大数则为:01111111,转为十进制为127,
如果一个数是负数,按照一般人都会觉得是11111111,转为十进制为-127,
但是:一个+0表示为:00000000,一个-0表示为:1000000,因为符号位不算在里面,所以就会有两个0,所以从一开始发明二进制的时候,就把-0规定为-128,如此二进制的补码就刚好在计算机中运作中吻合。(这是国内教材中的解释)
公式:计算一个数据类型的数据大小范围:-2^(字节数*8-1)~2^(字节数*8-1)-1
-
一个字节为什么存的是-128—127
2017-01-16 01:04:25今天想到一个字节存:-128——127,忽然困扰了我一下,复习计算机基础知识,做此记录。...所以一个字节中能存储的最大正数为:01111111,最小负数为:10000000 最大正数为:01111111 = 1+2+4+8+16+32+64 = 127今天想到一个字节存:-128——127,忽然困扰了我一下,复习计算机基础知识,做此记录。
我们都知道一个字节可以存8位,而有符号时,第一位是符号位,1代表负数,0代表正数。而负数是以反码的形式存在,计算方式为除符号位以外取反加一
所以一个字节中能存储的最大正数为:01111111,最小负数为:10000000
最大正数为:01111111 = 1+2+4+8+16+32+64 = 127
最小负数为:10000000除符号位取反加一:11111111 = -(1+2+4+8+16+32+64+1) = -128
也可以理解为:8位一共存储2的8次方个数即256个数,由于计算机中0没有正负之分,所以存的数值为:-128 —— -1 和 0 —— 127
-
Byte 一个字节的数据大小范围为什么是-128~127(原来是这样)
2019-03-16 17:15:35一个字节是8位,最高位是符号位,最高位为0则是正数。最高位为1则是负数 如果一个数是正数,最大数则为:01111111,转为十进制为127, 如果一个数是负数,按照一般人都会觉得是11111111,转为十进制为-127, 但是...转自:https://blog.csdn.net/hml666888/article/details/81107043
一个字节是8位,最高位是符号位,最高位为0则是正数。最高位为1则是负数
如果一个数是正数,最大数则为:01111111,转为十进制为127,
如果一个数是负数,按照一般人都会觉得是11111111,转为十进制为-127,
但是:一个+0表示为:00000000,一个-0表示为:1000000,因为符号位不算在里面,所以就会有两个0,所以从一开始发明二进制的时候,就把-0规定为-128,如此二进制的补码就刚好在计算机中运作中吻合。
公式:计算一个数据类型的数据大小范围:-2^(字节数*8-1)~2^(字节数*8-1)-1
确实我就是那个一般人,总觉得应该是 最小的负数应该是11111111,十进制的-127. 原来是把-0规定为-128了。
-
一个字节为什么存的值是-128到127,int取值范围怎么算的?
2018-08-13 01:36:09一个字节的取值范围为什么是-128-127呢: 一个字节有8位,第1位是符号位,1代表负数,0代表正数。 正数:原码=反码=补码 负数:反码=原码的所有位(符号位除外)取反 补码=反码+1 所以一个字节: 最大正数二... -
【java基础知识】『2』Byte一个字节的数据大小范围为什么是-128~127
2018-12-18 16:32:05一个字节是8位,最高位是符号位,最高位为0则是正数。最高位为1则是负数 如果一个数是正数,最大数则为:01111111,转为十进制为127, 如果一个数是负数,按照一般人都会觉得是11111111,转为十进制为-127, 但是... -
C数据类型-中文为什么两个字节
2018-07-31 12:21:23ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个...1,为什么英文一个字节,汉字两个字节? 一个字节是8位,0-127,只能表示128个字符,用来表示英文26个字母足够了,但是用来表示汉字却差... -
11.8为什么ascii码表里面的字符用一个字节即可满足存储需求
2020-11-08 20:17:30一个字节有8位,每一位两种状态1或者0 计算机储存数据是以二进制的bai方式,有一位为符号位,所以最大数为01111111转化为十进制数为127。 若无符号,最大数为11111111转化为十进制为255。 -
byte的数据大小为什么是-128 ~127
2020-01-31 12:33:39byte占8位一个字节,第一位为符号位不纳入计算。 最大为01111111转化为十进制就是127 最小为10000000转化为十进制就是-128第一位是符号为不纳入计算,但是因为正数时就有一个零00000000了,所以规定10000000为-128 ... -
byte为什么是-128-127
2017-06-19 23:05:19刚好可以用一个字节(8位)表示出来(2^8=256); 其实,1111 1111表示的是-1,而不是-128; 首先,因为要表示出负数,所以它的最高位是符号位。0表示正数,1表示负数;如: 127是0111 1111这样表示的。 -128是1000 ... -
char的取值范围为什么是-128到127
2019-05-23 15:03:57要知道char的取值范围为什么是-128到127,必须要先知道,在计算机中,数值是怎么存储和计算的-----以补码的形式。 正数:原码、反码、补码都相同。 负数:原码----->反码(除符号位为取反)------->... -
在java中,int类型占四个字节,而byte类型占一个字节
2010-09-17 09:14:29int占4个字节,即表示int类型的存储大小为4个字节。 如果转成十进制来说就是“-2147483648 ~2147483647” 即:int只能存放这么大的数字。...首先知道byte是一个字节保存的,有8个位,也就是8个0... -
为什么Java byte 类型的取值范围是-128~127
2017-10-25 13:07:05确定byte是1个字节,也就是8位2.最大的应该是0111 1111,因为第一位是符号位,0表示正数3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1)4.0111 1111即1275.1000 0000按照最下面的解释为... -
byte类型取值范围为什么是-128到127?
2013-03-05 18:48:00这个跟字节编码有关首先知道byte是一个字节保存的,有8个位,也就是8个0、1。8个位的第一个位是符号位,也就是说0000 0001代表的是数字11000 0000代表的就是-1所以正数最大位0111 1111,也就是数字127负数最大为1111... -
关于char的取值范围为什么是-128~+127
2016-11-20 12:25:18char 是一个字节类型。 由8位组成。 char 又分为 signed char (有符号类型) 和 unsigned char (无符号类型)。 通常,我们的理解是将char 作为 signed char 来处理。我们先来看 signed char的最大值。 最高位是 ... -
为什么byte的取值范围是-128-127
2013-03-08 18:14:161.确定byte是1个字节,也就是8位 2.最大的应该是0111 1111,因为第一位是符号位,0表示正数 3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1) 4.0111 1111即127 -
为什么JavaByte类型的取值范围是-128~127
2016-09-05 12:32:481.确定byte是1个字节,也就是8位 2.最大的应该是0111 1111,因为第一位是符号位,0表示正数 3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1) 4.0111 1111即127 5.1000 0000按照...
-
QHVlcPlayer.rar
-
安卓开发app开发!万字Android技术类校招面试题汇总,架构师必备技能
-
安卓开发淘宝抢购界面!史上最全的Android面试题集锦,附带学习经验
-
物联网基础篇:快速玩转MQTT
-
JavaScript 实现哈希表
-
MySQL 触发器
-
【爱码农】C#制作MDI文本编辑器
-
NFS 网络文件系统
-
大数据的基本概况.jpg
-
neuqacm技术组周会-python爬虫实战
-
动车组轴温检测系统仿真设计.zip
-
安卓开发教学!34岁安卓开发大叔感慨,完整PDF
-
与微软高级软件工程师的对话:如何进行自动化测试?
-
使用vue搭建微信H5公众号项目
-
ROSE-HA-V8.9+Win2008+SQL2008双机配置详细指南(图文).pdf
-
产品经理的情报收集与分析.pdf
-
骑士人才招聘系统 5.2.6商业版.zip
-
二维码实例.zip下载
-
华为1+X——网络系统建设与运维(中级)
-
MHA 高可用 MySQL 架构与 Altas 读写分离