精华内容
下载资源
问答
  • 想要弄清楚这问题,首先要明确计算机用补码存储整形数据 计算机-原码 就是二进制定点表示法,即最高位符号位:“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]。

    展开全文
  • 一个字节是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

    展开全文
  • 一个字节是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呢: 一个字节有8位,第1位符号位,1代表负数,0代表正数。 正数:原码=反码=补码 负数:反码=原码的所有位(符号位除外)取反 补码=反码+1 所以一个字节最大正数二...
  • 一个字节是8位,最高位符号位,最高位0则正数。最高位1则负数 如果一个数正数,最大数则:01111111,转为十进制为127, 如果一个数负数,按照一般人都会觉得11111111,转为十进制-127, 但是...
  • C数据类型-中文为什么个字节

    千次阅读 2018-07-31 12:21:23
    ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个...1,为什么英文一个字节,汉字两个字节?  一个字节是8位,0-127,只能表示128个字符,用来表示英文26个字母足够了,但是用来表示汉字却差...
  • 一个字节有8位,每一位两种状态1或者0 计算机储存数据以二进制的bai方式,有一位符号位,所以最大01111111转化十进制数为127。 若无符号,最大11111111转化十进制255。
  • byte占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这样表示的。 -1281000 ...
  • 要知道char的取值范围为什么是-128到127,必须要先知道,在计算机中,数值怎么存储和计算的-----以补码的形式。   正数:原码、反码、补码都相同。   负数:原码----->反码(除符号位为取反)------->...
  • int占4个字节,即表示int类型的存储大小4个字节。 如果转成十进制来说就是“-2147483648 ~2147483647” 即:int只能存放这么大的数字。...首先知道byte是一个字节保存的,有8个位,也就是8个0...
  • 确定byte1个字节,也就是8位2.最大的应该0111 1111,因为第符号位,0表示正数3.最小的应该1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1)4.0111 1111即1275.1000 0000按照最下面的解释...
  • 这个跟字节编码有关首先知道byte是一个字节保存的,有8个位,也就是8个0、1。8个位的第一个位符号位,也就是说0000 0001代表的数字11000 0000代表的就是-1所以正数最大位0111 1111,也就是数字127负数最大为1111...
  • 关于char的取值范围为什么是-128~+127

    千次阅读 2016-11-20 12:25:18
    char 是一个字节类型。 由8位组成。 char 又分为 signed char (有符号类型) 和 unsigned char (无符号类型)。 通常,我们的理解将char 作为 signed char 来处理。我们先来看 signed char的最大值。 最高位 ...
  • 为什么byte的取值范围-128-127

    千次阅读 2013-03-08 18:14:16
    1.确定byte1个字节,也就是8位 2.最大的应该0111 1111,因为第符号位,0表示正数 3.最小的应该1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1) 4.0111 1111即127
  • 1.确定byte1个字节,也就是8位 2.最大的应该0111 1111,因为第符号位,0表示正数 3.最小的应该1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1) 4.0111 1111即127 5.1000 0000按照...

空空如也

空空如也

1 2 3 4 5
收藏数 97
精华内容 38
关键字:

为什么一个字节最大是127