反码补码原码及相关课程问题整理总结
阅读示例EnumTest.java,运行并分析其运行结果,得到结论枚举类型是引用类型,枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。弄清楚反码,补码和原码的这几个概念,计算机实际只存储补码, 所以原码转换为补码的过程,也可以理解为数据存储到计算机内存中的过程: 在原、反、补码中,正数的表示是一模一样的,而负数的表示是不相同的,所以对于负数的补码来说,我们是不能直接用进制转换将其转换为十进制数值的,因为这样是得不到计算机真正存储的十进制数的,所以应该将其转换为原码后,再将转换得到的原码进行进制转换为十进制数。然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各个位取反。补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。Java变量遵循“同名变量的屏蔽原则”,每个变量都有一个有效区域,即定义的那片区域,出了这个区域,变量将不再有效,全局变量除外。从表示方式可以看出,原码是人眼最直观能看出值的表达方式,而对于补码和反码是为了简化计算机集成电路的设计。首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值区域的加减。但是对于计算机,加减乘除已经是最基础的运算,要设计的尽量简单。计算机辨别“符号位”显然会让计算机的基础电路设计变得十分复杂,于是人们想出了将符号位也参与运算的方法。我们知道,根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了。原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。反码:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。补码:正数的补码就是其本身。负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。
例子:
package test;
public class Test{
private statlc Int Albert= 1;
publlc static vold main(String[] args){
Int Albert= 2;
System.out.println(Albert);
结果:2
java中有8种基本数据类型:byte、int、short、long、boolean、char、float、double
对应的类为:Byte、Int、Short、Long、Boolean、Charecter、Float、Double
逻辑型:boolean文本型:char整数型:byte、short、int、long
浮点型:float、double
byte: 1字节 short: 2字节 int : 4字节 long: 8字节
boolean:1字节 float: 4字节double:8字节char: 2字节

浙公网安备 33010602011771号