ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

为什么一个 byte 的存储范围是 -128 ~ 127

2021-05-29 08:04:32  阅读:191  来源: 互联网

标签:反码 符号 补码 负数 127 128 byte 正数 原码


我们知道,对于有符号类型,计算机在处理的时候会把最高位当做符号位,0表示正数,1表示负数。举例来说(以下举例均针对8位有符号数):

0000 0001即为11000 0001即为-1,那么很容易得到8位有符号数值的表示范围应该是1111 1111 0111 1111,也就是-127~127,问题来了,-128是怎么来的呢?

在说明这个问题之前,先来补充点额外的知识:


在计算机的存储和计算中,统一的是采用补码进行处理和运算的,在弄清楚采用补码的好处之前,我们需要明确如下三个概念:

原码:是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码:正数的补码与其原码相同;负数的补码等于其反码+1。

很明显,文章开头的举例即是原码

标签:反码,符号,补码,负数,127,128,byte,正数,原码
来源: https://blog.51cto.com/u_14582976/2829400

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有