byte(128)为什么是-128?
众所周知,计算机中存储的都是二进制的补码,而原码,反码,补码的关系如下:
网上大部分的资料都是如此讲述,而实际上,负数的补码还可以这么求(必须确定是负数):
将负数的绝对值的原码整体(包括符号位)取反,再整体加一
虽然看起来两个方差不多,但是用第二种方式却能很好避免一些问题,请看下面这两题
System.out.println((byte)130);//打印-126
不管用哪种方法来算,都能算到,反码10000010的原码是11111110从而得出答案是-126
而接下来这题
System.out.println((byte)128);//打印-128
如果用第一种方法:
而如果用第二种方法:
其实也就在(byte)128的求值问题上,会出现这样的问题,追根溯源还是+0代表真的0,而-0代表的是-128.
基本数据类型的字节与范围如下
至于为什么8位是-128~127,是由于最高一位存储符号位,所以剩下7位代表数值大小,能从0表示到127
所以能从-127表示到127,但由于+0和-0都代表0,重复了,所以,多出一个位子,放到负数,让-0代表-128。
所以byte的范围是-128~127。
byte(128)为什么是-128?相关推荐
- c语言字符输出128,如何将128位整数转换为C中的十进制ASCII字符串?
部门不是必需的: #include #include typedef unsigned long uint32; /* N[0] - contains least significant bits, ...
- 手机运行内存6+128跟8+128有什么区别?
很高兴回答你的问题,手机运行内存6+128G和8+128G有区别是肯定的,中间相差2GB.哪iPhone手机2GB,3GB手机为什么比安卓手机8G运行内存.12G运行内存还要流畅,安卓新手机上手也非常 ...
- 为什么Byte是从-128到127?
关注+星标公众号,不错过精彩内容 编排 | strongerHuang 微信公众号 | 嵌入式专栏 计算机是一个很神奇的东西,仅靠 0 和 1 就能运算.存储等操作.那么,为什么Byte是从是从-12 ...
- byte的范围为何是-128~127,而不是-127~128?
一.计算机该怎么做减法? 比如2-1=1,1-1=0.由于种种原因(精力有限,暂不深究),加法电路难度和成本已经很高了, 当时的条件下,再去设计一个减法电路,费力又费钱,前辈们想用加法电路来 ...
- byte的取值范围为啥是[-128~127](超详细教学,建议收藏)
今天收到铁子问了一个问题,在java中的byte的取值范围为啥是[-128,127],而不是[-127,127];于是针对这个问题继续水一篇博客: 一.解释为啥会提出[-127,127]的问题 在字节 ...
- 【秒懂】byte的取值范围为什么是-128~127?
直接给总结:计算机规定了0000 0000 代表0,1000 0000代表的-0没有意义,必须找个~127~127之外的数和它对应,「人为规定-0就是-128」,而且这么做完美适合计算机做减法运算. ...
- 探究Java中byte数据类型范围为何是(-128到127)
文章目录 Java中byte数据类型范围为何是(-128到127) 知识要点 关键词解析 8位 符号位 Java中byte数据类型范围为何是(-128到127) 知识要点 byte在java中转为二进 ...
- 整数、浮点数在计算机中的存储,-128二进制怎么表示,
目录 1 计算机底层存储数据的基本原理 2 整数的存储 2.1 整数的基本概念 2.2 整数的编码方式 -128的二进制表示 3浮点数存储 3.1 二进制十进制间小数怎么转换 1 计算机底层存储数据的 ...
- 128陷阱解析(Java中的128陷阱)
原始类型:boolean,char,byte,short,int,long,float,double; 包装类型:Boolean,Character,Byte,Short,Integer,Long,F ...
最新文章
- Python读CSV数据
- 数据蒋堂 | 内置的数据无法实现高性能
- 硬件巨头正在崛起,中国独占鳌头
- Jrebel6.3.3破解,配置图文教程
- java jdk的作用_jdk的作用是什么?jdk和jre区别介绍
- python判断字符串结尾-字符串#69301_27种Python字符串操作方法大全
- Oracle 数据库导入导出
- AAAI 2020 | 微软亚洲研究院6篇精选论文在家看
- python数据类型-列表
- 新手 Spring 疑惑
- cms文章 mysql存储,帝国CMS万能标签调用随机文章的方法
- c++ 获取当前时间_ThinkPHP6中获取参数的3种常用方法【总结】
- matlab能流图,有会用MATLAB写海流图的程序吗
- 【iOS-cocos2d-X 游戏开发之八】使用Lua脚本进行游戏开发(基础篇)
- 边界布局BorderLayout源码解析
- openssl校验SSL证书public key是否配对
- Cadence SPB安装及重装
- python3.6 numpy下载_numpy下载安装 NumPy MKL v1.13.1 cp36 for Python3.6 官方安装版 64位 下载-脚本之家...
- u盘安装原版win10
- 商圈调查方案-调研目标