前期回顾:
接下去我们将学习java基础语法的内容。
六、二进制
十进制是满十进一,而所谓的二进制就是满二进一。
如上图所示,上面是二进制,下面的是十进制。首先我们应该理解为什么要使用二进制。因为在计算机中,其内部的电子元件只有两种状态,就是高电平和低电平,就通过这两种状态来存储数据;在计算机内部,所有的数据都被转化为二进制形式进行处理和存储。
二进制到十进制的转换
先理解位权的概念。对于十进制数字4321来说,其千位上的权值是,然后依次往下,所以其实所谓的
。
现在我们按着同样的方式来理解二进制数值
所以其实所谓的。所以二进制到十进制的转化,就是按着权值展开。
十进制到二进制的转换
其实我们只需要记住对应二进制的相应的位权就可以很快的奖十进制转化成二进制。例如:十进制的7转化成二进制
其实对应的二进制就是111。
例如:十进制的9转化成二进制
其实对应的二进制就是1001。
例如:十进制的17转化成二进制
其实对应的二进制就是10001
测试:
编译通过,没有错误,第一行被当作十进制输出,就是10001,第二行输出,加上了0b表示的就是二进制的数字,最后输出是17,是其二进制对应的十进制数值。
七、八进制和十六进制
八进制和十六进制也是类似的,所谓的八进制就是遇见8进1;十六进制就是遇见16进1。
①八进制:
遇见八进一
测试:
在前面添0表示该数字是八进制表示的数字,在输出的时候就会转化为十进制输出,就是十进制的15。
所以十进制的15使用八进制表示就是17。
②十六进制:
遇见十六进一
测试:
在前面添0x表示该数字是十六进制表示的数字,在输出的时候就会转化为十进制输出,就是十进制的17。
所以十进制的17使用十六进制表示就是11。
八、原码反码补码
①byte(字节)和bit(比特位)
例如十进制的128变成二进制就是10000000,那么我们就说这个二进制占八个比特位,通常一个字节由八个比特位构成;而一个比特位是计算中最小的存储单位,只能存储0或者1两个状态,因此一个字节(byte)可以存储8个比特(bit)的的数据。
其中需要记住以下数据单位之间的转化
1KB = 1024byte (其中1KB是1k个字节,在计算机中1k表示1024,所以是1024个字节)
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
②原码反码和补码
其实所谓的原码、反码和补码是其数据在计算中二进制三种不同的数据表现形式。其中在二进制中,其最高位称为符号位,最高位为0的话就表示正数,最低位为1的就表示为负数。
2.1正数:
对于正数来说,其原码反码和补码全都是一致的,就是其二进制的表示。
例如:对于十进制数127来说,其原码反码和补码都是01111111。
2.2负数:
对于负数来说,想要知道其补码和反码的话就必须先要写出其对应的原码,然后再将其原码转化为相应的补码和反码。
例如:对于十进制数-127来说,其原码就是11111111。那么如何得到-127的反码表示呢,在转化为反码的时候遵循以下规则:将负数取绝对值然后写成二进制原码,然后最高位改为1,就是负数的原码;然后符号位不变,其余位按位取反。所以其十进制数-127的反码就是10000000。那么又如何得到其补码呢?遵循以下规则,在其对应反码的基础上加上1;所以其十进制数-127的补码就是10000001。
需要记住:实际在计算机中,所有的数据都是以补码的形式来存储的,因为采用补码存储数据有多方面的好处,可以让计算机运算的更加简便且快速,后面会详细说其采用补码存储的优点,这里只需记住实际计算中存储数据采用补码的形式。
2.3练习
-20的原码反码补码分别是多少?
-128的原码反码补码分别是多少?
九、数据类型
在java中我们一共要学习以下数据类型,其实我们在之前的学习当中已经接触过数据类型了,在讲解变量的时候,我们定义变量的时候说,变量是计算中存储数据的基本单位,在定义变量的时候就使用到了数据类型,我们说,在定义变量的时候,计算机会根据定于变量的数据类型在计算机的内存中开辟相应的空间大小给变量,同时开辟好的变量空间也只能存储相应的类型的数据。
我们也是体验到了,不同的数据类型,可以让计算机给其开辟不同的内存空间,同时也可以作为一个提示告诉计算机此次开辟多大的空间给你。
①基本的数据类型
- 整数型:byte(字节)、short(中等大小整数)、int(java中最常用的整数类型)、long(空间较大的整型)
- 浮点型:float 、double
- 布尔型:boolean(布尔类型)其实就是0和1,底层来说也还是数字。
- 字符型:char (单个字符:'A'、'b'、) 其实底层来看,字符类型也是数字,因为是由专门的组织是规定了某个数字是对应着某个字符的;例如ASSIC表。
测试1:
编译通过,byte是一个字节型数据类型,这个数据类型是1个字节即8个比特位;当byte b = 1;的时候,编译时通过的,虽热在计算中开辟的是一个字节,对于存储整数型1来说还是够的,即8个比特位是足够的存的下的,即编译通过;同时整数型127,八个比特位同样的可以存储下,所以编译通过。
编译不通过,其实就是由于开辟的一字节空间存储不下了。 所以当一个整数型字面量没有超出byte的取值范围的时候,可以直接赋值给byte类型的变量。
若仍然想将128赋值给d的话,就需要进行强制类型转换。
②引用数据类型
除了基本数据类型以外的都是引用数据类型。