String类型变量:
/*
String变量类型的使用:
1.
属于引用数据类型,不是8中基本数据类型,并且翻译为:字符串
2.
声明String类型变量时,必须要使用一对“”
3.String是可以和8种基本数据类型做运算,且运算只能是连接运算。
>>运算后的结果是String类型,也就是引用数据类型。
*/
class StringTest{
public static void main(String[] args){
String s1 = "Hello,Word";
System.out.println(s1);
//char c1 = '' 编译不通过,字符型变量单引号内有且只有一个!
//****************************
boolean number = true;
String numberStr = "学号";
String info = number + numberStr;//连接运算符,要和加法运算符区分开!
System.out.println(info);
//****************************
//练习1
char c = 'a';//97 A:65
int num = 10;
String str = "Hello";
System.out.println(c + num + str);//107hello
System.out.println(c + str + num);//ahello10
System.out.println(c + (num + str));//a10hello
System.out.println((c + num) + str);//107hello
System.out.println(str + num + c);//hello10a
//练习2
System.out.println("* *");//* *
System.out.println('*' + '\t' + '*');//代表的是数字相加,结果为一个数
System.out.println('*' + "\t" + '*');//* *
System.out.println('*' + '\t' + "*");//51*
System.out.println('*' + ('\t' + "*"));//* *
System.out.println("**********************");
//****************************
}
}
进制之间的转换:
1. 2进制:0,1 满2进1,以0b或者0B开头;
2. 8进制: 0-7, 满8进1,以0开头
3. 10进制,0-9 ,满10进1
4. 16进制,0-9 A-F,满16进1,以0x或者0X开头,并且AF不区分大小写。
class BinaryTest {
public static void main(String[] args) {
int num1 = 0b110;
int num2 = 110;
int num3 = 0127;
int num4 = 0x110A;
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
System.out.println("num3 = " + num3);
System.out.println("num4 = " + num4);
/*
result:
num1 = 6
num2 = 110
num3 = 87
num4 = 4362
*/
}
}
二进制和十进制之间的相互转换:
0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
转换为十进制:2*3 + 2*2 + 2*1 = 14
最开头的一位是符号位:0代表正号,1是负号!
正数的 源码 反码 补码都一样,三码合一
负数:
举个例子:
1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
第一位从0>>1,所以这是-14的源码。
除了符号位之外,各个位取反,得到-14的反码:
1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
在反码的基础之上+1得到-14的补码:
1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 |
注意:在计算机的底层无论正数和负数都以补码的方式来记录数字,无特殊说明,给定的都是补码!
**************************************************************************************************************
十进制转化为二进制:除2取余的逆(从下往上看)
13对应的二进制?
13
6 1
3 0
1 1
0 1
0 0 >>>> 从下往上看:1101
十进制和其他进制之间的转换,可以通过二进制作为中间转换,来完成。
二进制>>八进制:
三个一位,累计相加:
例子:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
result:0351
二进制>>十六进制:
四个一位,累计相加:
例子:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
result:0xE9
八进制>>二进制:每一位都拆成三位
0357:
7 >> 111
5 >> 101
3 >> 011
result:011101111
十六进制>>二进制:每一位都拆成四位
0x3AF:
F >> 1111
A >> 1010
3 >> 0011
result:001110101111