第一次课后作业
一.反码补码原码
计算机是用补码来储存数据的。
一个数在计算机是以二进制的形式表示,在计算机用最高位来表示数的符号。正数为0,负数为1.
比如十进制下的3,在计算机中是[00000011]。-3在计算机中就是[10000011]。
原码:就是在第一位表示符号,其余为表示其真正的数值。
反码:正数的反码不变。负数的反码就是在原码的基础上符号位不变,其余的全部取相反的数。{原码是0,反码取1。 原码是1,反码取0。}
补码:正数的补码不变。负数的补码就是在反码的基础上+1。
例:
十进制数值 | 原码 | 反码 | 补码 |
9 | [00001001] | [00001001] | [00001001] |
-9 | [10001001] | [11110110] | [11110111] |
我只是一个初学者,都是在网上看到的,自己的一点儿见解。
二.枚举类型
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};
测试结果如下:
(1)枚举类型中的元素不是一个对象,枚举是一个数据集,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。
(2)枚举类型是一种新的数据类型,并非是原始数据类型
(3)枚举类型中的元素可以转换为字符串类型,并且里面的所以元素可以列举出来
在这个程序中还学到了for(int A:B)。这就是遍历整个程序赋值。
三.
测试以下程序会有什么结果:
public static void main(String[] args) {
int X=100; int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
}
测试结果如下:
在java中 + 有连接符的功能。
在"X+Y="+X+Y中引号后面的 + 就被自动默认为连接符。所以结果为100200.
在X+Y+"=X+Y"中先默认算加法就是300然后再打印引号里面的。
四.基本数据类型
整型: byte : 1个字节 -128~127
short: 2个字节 -32768~32767
int: 4个字节 -2的31次方~2的31次方-1
long: 8个字节 -2的63次方~2的63次方-1
浮点型:float: 4个字节 1.4013E-45~3.4028E+38
double: 8个字节 4.9E-324~1.7977E+308
字符型:char: 2个字节 0~65535
布尔型:Boolean: 1个字节 true false