byte为什么是-128-127

为什么一个 byte 的存储范围是 -128 ~ 127 我们知道,对于有符号类型,计算机在处理的时候会把最高位当做符号位,0表示正数,1表示负数。举例来说(以下举例均针对8位有符号数): 0000 0001即为1,1000 0001即为-1,那么很容易得到8位有符号数值的表示范围应该是1111 1111~0111 1111,也就是-127~127,问题来了,-128是怎么来的呢? 在说明这个问题之前,先来补充点额外的知识: 在计算机的存储和计... 阅读详情

byte为什么是-128-127

2017年06月19日 23:05:19 流风雨情 阅读数:1021

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/qq_29232943/article/details/73478023

-128到127.共256个数。刚好可以用一个字节(8位)表示出来(2^8=256); 
其实,1111 1111表示的是-1,而不是-128; 
首先,因为要表示出负数,所以它的最高位是符号位。0表示正数,1表示负数;如: 
127是0111 1111这样表示的。 
-128是1000 0000这样表示的。

127后面是-128,最大的正数加下来是最小的负数。这就跟钟表一样,12点钟后面是1点中钟一样。 
因为它是用补码的编码方式。(下面的看不懂可以直接跳过,或者百度了解之后再看) 
正数的补码就是它的原码,也就是单纯的二进制数。负数的话,看下面例子: 
1111 1111这个二进制串,首先它最高位是1,明确他是个负数。 
那么其余位是111 1111,按位取反得到:000 0000,再加1就是:000 0001 
也就是1,再加上符号位。最终结果是-1

1. 在计算机内部数据的存储和运算都采用二进制;
2. 计算机中数据分为有符号数和无符号数,对于有符号数,计算机规定用最高位来表示符 号。“0”表示正数,“1”表示负数;
3. Java中的数据都是有符号数;
4. 计算机中带符号的整数都是使用二进制的补码。
  • 1
  • 2
  • 3
  • 4

[原码]:计算机中将一个数字转换为二进制,并在其最高位加上符号的一种表示方法。
[反码]:根据表示规定,正数的反码就是本身,而负数的反码,除符号位外,其余位依次取反。
[补码]:根据表示规定,正数的补码就是本身,而负数的补码,是在其反码的末位加1。
  • 1
  • 2
  • 3

对于负数求补码的时候,可以从原码低位开始,各个位依次取反,符号位不变 
原码 
0111 1111(127)+1=1000 0000(-128)取反1111 1111+1=1000 0000(补码) 
1000 0000(-128)怎么是-128

1000 0000还原为原码: 
最高位是1,表示负数,剩余的各位取反 111 1111 再+1 得到 1000 0000, +128的原码,整个数为-128负数

1000 0000(补码)+0000 0001(补码)=1000 0001( 补码) 
1000 0001-1取反1111 1111(原码)=-127

补码 从小到大 二进制 
1000 0000—-0000 0000—-0111 1111 
首尾相连,刚好连个时钟,最大的加一到最小的

1000 0000减一取反1000 0000

原码 从小到 大二进制 
1000 0000—-0000 0000 —-0111 1111

原码十进制 
换算成十进制就是128,加上符号,即-128-0-127

对数周期天线hfss建模_Ansoft HFSS 在设计对数周期天线时的仿真方法-HFSS教程 AnsoftHFSS在设计对数周期天线时的仿真方法文章来源: ANSYS 2011中国用户大会优秀论文 录入: mweda.com 点击数:【摘要】 本文通过 ANSOFT HFSS 设计了一个对数周期天线,在仿真分析时,发现随着求解频率的不同,天线的求解结果差别较大,求解误差较大。通过在 HFSS 中尝试不同的求解设置方法, 最终通过将天线模型剖分网格最大长度限定在 1/50λ的... 阅读详情

相关推荐

用Multisim复刻经典收音机:从零搭建超外差中波调幅接收机(附仿真源文件)

本文详细介绍了如何使用Multisim软件从零搭建超外差中波调幅接收机,复刻经典收音机的设计过程。通过模块化搭建、稳定性优化和增益分配等实战指南,帮助读者掌握超外差架构的核心技术,并附赠仿真源文件供实践参考。

weixin_28744423的博客 477

byte的取值范围为啥是[-128~127](超详细教学,建议收藏)

使用补码可以解决0的符号问题,且能多一个最低数-128,这就是为什么byte的范围是[-128,127]!!

小魏快起床的博客 6202

Blender - Shrinkwrap - 更方便的制作贴合模型的表面来建模

Shrinkwrap 修改器 使用 Blender 想要快速建模可以贴合现有模型表面的效果:衣服、皮肤、等效果,可以使用 Shrinkwrap 修改器,这个修改器的名字其实按照英文上的理解,翻译为:收缩的包裹效果 应用 如这块铁皮,它要贴合机身弯曲的效果,可以先建好一个铁皮,再 Shrinkwrap 到一个指定的网格上 留意的参数 Target 要贴合的对象(目前我已知是可以贴合到网格对象上,实在是方便) VertexGroup 顶点组,和之前讲到过的,顶点组可以组设顶点的权重,意思这个可.

Jave.Lin 的学习笔记 6073

byte范围及8种常见数据类型

byte范围:-128  到 127 原因 : 在计算机内,定点数有3种表示法:原码、反码和补码 原码 :二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码 :正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码 :正数的补码与其原码相同;负数的补码是在其反码的末位加1。 java中用补码表示二进制数,补码的最高位是符号

J 博客 3万+

电磁仿真软件CST2020 下载链接及安装破·解教程笔记

众所周知,配环境是安装软件最头疼的事情。CST2020我调了一上午,网上现有的安装教程良莠不齐,很难有一篇文章能够全流程的讲述安装过程以及遇到的问题。正好今天我要给另一台电脑装软件,借此机会把安装过程记录下来,以供将来使用和他人借鉴。 首先提供下载地址: 百度网盘 链接:https://pan.baidu.com/s/1cDJZelufj-nliUfekMNpEA 提取码:8ihx 附: 根据二○○二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软

weixin_42845306的博客 3万+

避坑指南:LVGL在Arduino环境编译报错?3步搞定lv_conf.h路径问题(附ST7789屏幕调试技巧)

本文详细解析了在Arduino环境中配置LVGL图形库时,如何解决常见的“lv_conf.h file not found”编译报错问题。通过三步法:定位并复制模板文件、启用核心配置并指定路径、配置基础参数,从根本上解决路径问题。文章还结合ST7789屏幕驱动,分享了使用TFT_eSPI库进行显示适配、内存优化及背光控制等实战调试技巧,帮助开发者建立清晰、可维护的嵌入式UI工程基础。

lake5的博客 860

8位有符号整数的范围[-128, 127]最简单解释

计算机存储机器数是使用补码的形式,8位二进制数共可表示256个数,其中: 0000 0001 ~ 0111 1111一共127个正数 1000 0001 ~ 1111 1111一共127个负数 剩下两个数是0000 0000 和1000 0000,本来分别表示+0和-0,但为了只用一个数来表示0,1000 0000就被规定为表示-128,原因如下: (-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111 1111]补 + [1000 0001]补 = [1

风中一匹狼的博客 6985

生物信息学新手必备:5分钟搞定GEO补充数据下载(含西柚云代理配置)

本文为生物信息学新手提供了快速下载GEO数据库补充数据的完整方案。核心在于解析GEO文件存储逻辑,构造正确的FTP下载链接,并利用云端代理服务(如西柚云)解决国内访问NCBI速度慢、易中断的问题。通过分步教程,用户无需命令行即可在5分钟内稳定获取大型测序文件,极大提升数据获取效率。

weixin_28314575的博客 638

1字节表示范围-128到127理解总结

一个字节8位,如果是原码方式表示正整数包含0,是0-255范围,2^8共256个,从0000 0000 到1111 1111的排列组合。 如果表示负数,符号位(最高位需要占1位)1表示负数,0表示整数,绝对值范围是0-127,2^7=128;一共正负各128个; 但是这种情况下0占用了2个编码(1000 0000和 0000 0000),数据表示范围-127~-0和 +0~+127 这样总共有256个;实际0占用了正0和负0;这种0占用正0和负0情况,人们想到了另一种编码把负0利用起来,当遇到负数时,

abk921的专栏 5745

rtpengine 项目

rtpengine 项目

原来45的博客 1790

平头哥面试——芯片工程师面经

有5个成递增关系的32bit地址值,彼此之间的间隔大小不确定,可以把他们当成parameter来输入模块,现有一个32bit输入数据,要求用尽量少资源去的判断这个数处于哪2个地址之间(地址区间),并且输出区间号。a)后续大概会在9月下旬谈具体的薪资,他们现在也没想好今年应届生的薪资该给多少,到时候如果可以签三方的话可能会跳过意向书环节直接发offer,谈薪资肯定是通过电话来。b. 这边的CPU是自己研制的(玄铁),成都这边主要做存储和网络,都有SOC。a. 成都这边的网络部门具体做的业务有哪些?

FPGA/MATLAB学习教程/源码/项目合作开发 2688

关于 为什么 byte型 127+1= - 128?

关于 为什么 byte型 127+1= - 128? java中byte型数据的范围是-128~127; 当超出范围后会造成溢出现象 byte 属于 -128 ~ +127 范围 127加的数 >1就会数据溢出,-128减的数 >1也会溢出.       127+1 = -128;       127+2 = - 127;     &nb

weixin_42270074的博客 2702

Halcon学习之一维测量(3)

带定位器的测量。首先看一下“定位”是什么意思?回答:比如我们测量一个芯片,这时候我们设置一个测量矩形,来沿着测量目标进行测量。但是下一张当芯片的位置发生变化时,测量矩形的位置就不对了,就不是沿着测量目标了。这样就不对了!芯片在转,测量矩形也要跟着一起转才行。这个时候就需要“定位”来起作用了!定位之后得到这个芯片的旋转角度之后,测量矩形可以跟着这个角度转。这就是“定位”+“测量”,这是我们工业视觉常用的一个手法,在Halcon里面也是有例子展现的。

deep_love1314的博客 788

Java中,为什么byte类型的取值范围为-128~127?

在学习Java基础语法的时候,初学者的我们可能都会有这么一个疑问为什么byte类型的取值范围为什么是[-128,127]而不是[-127,127]。01111111表示最大的数值:127,因为第一位是符号位,所以11111111应该是最小的数值:-127,不是这样才对?在解释这个问题之前我们需要了解几个概念:机器数、真值、原码、反码、补码机器数:一个数在计算机中的二进制表示形式, 叫做这个数的机器

探路的淮--Ontheway的博客 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

为什么Byte是从-128到127?

原文链接:(11条消息) 为什么Byte是从-128到127?_strongerHuang的博客-优快云博客笔者在搜索相关问题时发现了上述帖子,但可惜原帖似有遗漏,故补充说明。 计算机是一个很神奇的东西,仅靠 0 和 1 就能运算、存储等操作。那么,为什么Byte是从是从-128到127?今天就给大家讲讲计算机二进制的一些内容。嵌入式专栏1计算机表示数据的规则这个问题的解释要从符号位说起,在计算机的世界里,数字的表示采用的是二进制的规则,如果自然界只存在正数,那么计算机的编码方式将无比简单,直接就能使用

liumuf的博客 2719

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

本文关键字:byte、字节、二进制位、反码、补码。在计算机中,一个二进制位是最小的存储单元,由于是二进制,所以能存储的数字只能是0和1。

微光点亮星辰 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数值类型byte的范围为什么是-128到127

byte数据类型,byte的取值范围

tn_666的博客 1146

Byte取值范围为什么是-128到127?

我们都知道一件事情,java的byte类型的数据范围是从 -128 到 127. 一直在想为什么不是 -128 到 128呢?今天分析了一下这个问题。 首先我们得明白一件事情,那就是运算规则: ####################################################################### #### 正数的最高位都是 0 ,正数的值就是二进制...

jpy870965036的博客 828

为什么byte是-128到127

1byte=8bit,就是8位 可选范围就是0000 0000------>1111 1111 第一位代表符号,0为正数,1为负数,那么 0000 0000-->0(正数)000 0000,就是0; 0111 1111--->0(正数)111 1111,就是正数127; 对于负数需要按照补码操作:(按位取反再加一),如下: 1000 0000--->1(负数)000 0000,去掉符号位再按位取反是111 1111, 加一后是1000 0000(这里没有符号位),就是12

q512267644的博客 516

关于byte的范围为什么是 -128——127

然后,根据基础知识中的二进制第一位是符号位,又因为正数补码和原码是一致的,所以正数最大值的补码 0111 1111,其代表的就是127,那么从127-1之间存在127个正数,加上0就是128个数。首先要知道byte是一个字节,一个字节是占8位,根据排列组合的知识那么一共2^8=256种,也就是说byte能够表示的数据一共有256个数。最后,其余的负数占一半,也就是128个数。

m0_51838652的博客 989

java byte最小值_关于java中byte取值范围最小值为什么是-128而不是-127引发的思考...

我们都知道java 的byte占4个字节,1个字节8位。而计算机表示数据都是以二进制的形式表示。那么一个byte表示的二进制应该为0000 0000 -1111 1111,又因为最高位代表符号位,那么一个byte表示的范围就应该为(-2^7-1)-(2^7-1)即-127到127怎么会有-128呢?其实也没有什么好说的,这就是规定的,包括short,int,long这些都是一样!那么为什么这么规定...

bobo的博客 451

【追根究底】byte 为什么是从-128到127?

计算机表示数据的规则:前提:我们假设一个数字用4位来表示。这个问题的解释要从符号位说起,在计算机的世界里,数字的表示采用的是二进制的规则,如果自然界只存在正数,那么计算机的编码方...

李肖遥的专栏 1040

【Java】为什么byte类型的取值范围为-128~127?

在学习Java基础语法的时候,初学者的我们可能都会有这么一个疑问为什么byte类型的取值范围为什么是[-128,127]而不是[-127,127]。01111111表示最大的数值:127,因为第一位是符号位,所以11111111应该是最小的数值:-127,不是这样才对? 在解释这个问题之前我们需要了解几个概念:机器数、真值、原码、反码、补码 机器数: 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。 比如:十进制中的

ooooooooooooooxiaosu的博客 1204

关于byte类型127+1为什么是(-128)

关于byte类型127+1为什么是(-128)

Alide_wife的博客 1506

Java小疑惑-为什么byte类型取值是-128~127

为什么byte类型取值是-128~127 在学习Java时总有一种疑惑,为什么byte类型的取值是【-128,127】,而不是【-127,127】呢?那今天就跟着小编一起来讨论一下 首先我们要明白几个概念: 1.机器数:一个数 在计算机中的二进制表示形式 2.原码:符号数加上真值的绝对值(即第一位是符号,如果是八位数,后面七位就是真值) 3.反码:正数的反码是本身。负数是将原码的每一位取反,就得到...

qq_42022411的博客 518
上一篇: 各大公司Java面试题超详细总结
下一篇: String、StringBuffer与StringBuilder之间区别
王树民
博客等级 码龄10年 912粉丝 560原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值