补码怎么算(补码怎么算)
二. 基础类型的分类
图片来源于网络
整型:byte, short, int, long
字符型:char
浮点型:float, double
布尔型:boolean
三. 每种基础类型的含义
整型
Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,那么补码如何计算呢?
补码=源码取反 1;
如:
22,在计算机中的表示为00010110
-22,取反:11101001,加1:11101010
在Java中,整数类型共有4种,它们有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性
图片来源于网络
2. 浮点型(我的理解就是数学中的小数,只是精度不一致)
Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准
图片来源于网络
考勤机怎么录指纹(考勤机没有管理员指纹怎么进入)智能考勤管理系统七大功能 员工考勤采用指纹识别方式,指纹无法识别的特殊人群采集面部,使用面部考勤。考勤设备使用指纹考勤机和面部指纹考勤机。考勤机安全稳定,在干燥的季节不会产生静电对设备或使用者造成伤害。 员工考勤分设在各就近考勤点,采用生物
3. 字符型
字符类型是用'单引号括起来的单个字符
4. 布尔型(个人理解为真假类型,即非真即假)
其中值得研究一下的是boolean,因为官方没有明确给出boolean长度,实际的长度是由相应的虚拟机来设计的。boolean表示是、否两种情况,只需要一位就可以表示。在jvm中基本类型分为:数值类型、boolean类型和returnAddress三种类型。
基础类型长度和默认值总结图 - 图片来源于网络
四, 引用类型
哎嘿,刚刚第一张图里面除了基础数据类型还有个引用数据类型是什么?
简单说下:引用类型,是指除了基本的变量类型之外的所有类型(如通过 class 定义的类型)。哈哈哈哈哈,这个说被打,下面仔细说下吧
什么是引用?
引用其实就像是一个对象的名字或者别名 (alias),一个对象在内存中会请求一块空间来保存数据。访问对象的时候,我们不会直接是访问对象在内存中的数据,而是通过引用去访问。引用也是一种数据类型,指示了对象在内存中的地址,用图来解释一下
图片来源于网络
从图上可以看出,值类型中的abcd都是在栈这边的框框中的,而引用类型中的abcd在栈框框内,但是有一根线指向了堆的框框内,引用提现出来了!!!引用这个能够用线去访问堆框框内的abcd变量!
讲完引用类型重新回到基础类型了
五. 基础类型的转换
1. 基本数据类型中类型的自动提升
图片来源于网络
图中依次表示了各数值类型的字节数和相应的取值范围。在Java中,整数类型(byte/short/int/long)中,对于未声明数据类型的整形,其默认类型为int型。在浮点类型(float/double)中,对于未声明数据类型的浮点型,默认为double型。
2. 隐式类型转换
从存储范围小的类型到存储范围大的类型.
byte -
概述
先引入一个前提,在计算机中数字是以二进制进行存储的,也就是我们看到的2,在计算机中存储的是10。我们进行的加法运算 2+1=3 在计算机中是这样的(这里先假设计算机存储的是4位二进制数字) 0010+0001=0011
很容以看的出来,4为二进制数能表示的最大数字是1111,就像两位十进制数表示的最大数字是99一样。那如果在进行加法运算时,结果超出存储的容量怎么办?比如:9+9=18 二进制表示为:1001+1001=10010,但是,因为只能存储4位数的原因,最高位丢了,结果变成了 0010,也就是2,这时是发生了溢出的。在做运算时要避免数值发生溢出(当然,现在计算机存储的数字为64位,日常使用完全不用担心)
运算不光有加法,还有减乘除。乘法就是多次加法,除法就是多次减法。那么减法如何实现呢?在刚开始的时候,计算机只能进行加法运算,这时一部分人想办法让其能够直接进行减法计算,而另一部分人想通过加法来实现减法,最终后者先给出了解决方案。(只是我臆想的情景)
通过加法来实现减法
还记得上面提到的,四位二进制数表示的最大数字为15,当发生溢出时:
16=>二进制:10000 => 0
17=>二进制:10001 => 1
显然,去掉最高位等于减去16
那么能不能利用加法溢出来实现减法呢?下面简单推倒一下:
9-2=7 若要实现 9+x=7 那么利用溢出的原理,就要实现 9+x=7+16=23 简单的解一下方程 x=23-9=14 , 很好,来验证一下:
9+14 的二进制表示为:1001+1110=10111 最高位溢出,结果为:0111 也就是7,完美。
下面问题来了:如何将上边的2转成14呢?也就是讲二进制的0010转成1110。他们有什么关系呢?
伟大的数学科学家前辈们总结出了规律。并发明了反码和补码的概念。补码就是上面转换后的14。
原码=>按位取反=>反码
反码=>加1=>补码
虽然不知道这个规律是如何找出来的,但经过无数次验证,确实是这样。
引入负数
当引入了负数的概念时,为了表示正负,规定第一位为符号位(0为正,1为负),因为引入符号位,原来的4位数,能表示的最大值也变成了0111。
因为负数的引入,现在所有的减法都可以当做加法来实现了,9-2=9+(-2),或者说9+(-2)=9-2。计算仍然是通过补码来实现。
负数的补码为:符号位不变按位取反,再加1
正数的补码为:它本身
负数的补码很好理解,就是上面总结的规律,利用加法来实现减法。正数的补码为啥是它本身呢?你看刚才分析的减法,只有被减数进行了转换,减数没变吧。很好理解。其实也是为了可以统一进行处理,引入补码后,正负数可以使用一套加减法规则进行计算。
简单实验一下:
2+(-4)=-2
-4 => 二进制表示:1100 => 补码:1100
2 => 二进制表示:0010 => 补码:0010
1100+0010=1110(补码)
将计算结果再转成原码 1010,-2没毛病
然后,有一个尴尬的问题,正数的0为: 0000,负数的0为:1000,同一个数字,但是换成补码后,你会发现是同一个数字: 0000。
总结一下:利用补码计算,就是通过加法来实现减法运算,是利用了计算机存储位数有限,超出发生溢出并丢失最高位的特性。
不知道补码是哪位伟大的科学家发明的,前人栽树后人乘凉,膜拜。
- 2022-02-08黑泽为啥能娶到林志玲
- 2015-02-25石家庄一小区入住两年还不通天然气 居民生活不便
- 2021-11-14上海五星体育电视直播(上海五星体育电视直播手机)
- 2022-04-29回族明星(回族明星有哪些人)
- 2022-05-18家里财位适合摆放什么东西(家里财位应该摆放什么东西)
- 2022-05-13卫青为什么被灭九族(卫青为什么被灭九族真的吗)
- 2021-11-28j联赛直播(J联赛直播大贩钢巴对大贩)
- 2022-02-12关闭微信运动步数(关闭微信运动步数会变0么)
- 补码怎么算(补码怎么算)
- 琴音三叠特技效果(梦幻西游琴音三叠好用吗)
- 一般肝昏迷还能活多久(肝昏迷能活多长时间)
- 低脂食物食谱大全(低脂食物有哪些)
- 天玑1200手机有哪些(天玑1200哪款手机首发)
- 赛博朋克3000块的性偶(赛博朋克20773000块性偶)
- 荷花的赞美词(赞美荷花的经典诗句大全)
- 宝马车钥匙电池型号(宝马5系车钥匙电池型号)
- 原作石森章太郎什么梗(石森章太郎是什么梗)
- 女生说无聊怎么回复(女生说无聊怎么回复幽默)
- 元宵节习俗(元宵节节日风俗)
- 毒瘾多久发作一次(毒瘾多久发作一次)
- 神马导航(九龙图库app软件下载神马导航网)
- 沈阳奔驰婚车(沈阳奔驰婚车租赁价格)
- 简易折叠帐篷怎么收(帐篷折叠方法图解)
- 团中央统战部领导 莅临石狮青商会
- 福建少儿频道全新改版 《第九情报站》闪亮开播
- 羽绒服干洗 面料起毛了
- 加油!好少年 首档青少体育真人秀节目启动
- 少儿频道“最美童声”启动 民国装小女神亮相
- 石狮建设智慧城市 5.6万新市民试行积分制管理
- 福州石油荣获年度综合竞争力先进单位
- 海峡卫视“养生硒行”摄制组探访恩施新塘长寿村
- 福建召开体育工作会议 推进体育强省建设迈上新台阶
- 太极之花绽放在海峡两岸
- 好大一个家唐豆豆扮演者是谁 曹苑资料照片演过的电视剧
- 厦门卫视名角评选决出5强 陈昭薇坦言压力大
- 海峡卫视《客家人》栏目4月全新改版
- 陶晶莹退出节目录制 疑因不满被消费“素颜照”
- 石狮青商会 新增30名理事