2017-3-22
有符号数据的表示法:
源码,反码和补码
为什么需要这个知识点?
A因为计算机在操作的时候,都是采用数据对应的二进制的补码来计算的
我准备用原码,反码,补码来表示+7和-7
正数的原码最高位是0,负数的原码最高位是1,其他位是数值位。
+7 :原码: 0000111
-7 : 原码: 1000111
正数的反码与原码相同,负数的反码与原码符号相同,数值为取反,就是1变0,0变1。
+7 :反码0000111
-7 :反码1111000
补码:正数的补码与原码相同,负数的补码是在反码的基础上加1。
+7 :补码:0000111
-7 :补码1111001
练习:
1已知某数X的原码为10110100B,试求X的补码和反码
符号位 数值位
补码: 1 1001100
反码: 1 1001011
2已知某数X的补码为11101110B,试求其原码
符号位 数值位
可以先求反码: 1 1101101
原码: 1 0010010
定义变量的格式是:
数据类型 变量名=初始化值;
关键字
标识符
基本数据类型转换:普通的转换和强制转换
布尔类型永远无法和其他的转换,因为boolean的值只有true和false。
普通转换:
普通转换是只能从小的数据类型转换成大的数据类型。
强制转换:
从大的数据类型到小的数据类型。
目标数据类型 变量=(目标数据类型)(被转换的数据)
注意:不要随意使用强制转换,因为它隐含精度损失问题。
一个有趣的小例子:
问:下述两句的区别?
float f1=(float)12.345;
float f2=12.345F;
答:第一个:第一句因为12.345所以是double类型,然后一个强制转换,是截取掉double多余的字节后的float类型。
看第二个:第二个添加了一个F,所以其本身就是一个float类型。
网友评论