进制
- 机算计进制常有:十进制,二进制,八进制,十六进制
- 十进制:常用的算数就是10进制,例如:10,20,30
- 二进制:机算计中的进制就是以二进制来保存,二级制,逢二进一,只有0和1两个数值;机算计的一个为二进制数码0或者1所占内存就是1bit
- 八进制:基数为八;java中的八进制以开头,二级制转换为八进制,只要将每个八进制数字替换为相对应的三个二进制位即可
二进制 | 八进制 |
---|
000 | 0 | 001 | 1 | 010 | 2 | 011 | 3 | 100 | 4 | 101 | 5 | 110 | 6 | 111 | 7 |
- 二进制表示法太冗长,因此在程序中一般喜欢用十六进制
- 十六进制:基数是十六,逢十六进一,他用abcdef表示从0到9之上的值
- java中的十六进制一般以0x开头
- 十六进制转换为二进制只要将每个十六进制的数字替换为对应的四个二进制位即可
二进制 | 十六进制 | 二进制 | 十六进制 |
---|
0000 | 0 | 1001 | 9 | 0001 | 1 | 1010 | A | 0010 | 2 | 1011 | B | 0011 | 3 | 1100 | C | 0100 | 4 | 1101 | D | 0101 | 5 | 1110 | E | 0110 | 6 | 1111 | F | 0111 | 7 | | | 1000 | 8 | | |
补码
- 补码:机算计年内的二进制数值是以补码的形式来表示的,一个整数的补码和其源码的形式是相同的
- 负数的补码是:将概述的绝对值的二进制行形式,按位取反再加一
- 因此,二进制补码数值的最高位(最左位)是符号位,该位为0,表示数值为整数,该位为1,表示数值为负数
- 使用补码的主要原因:可以将符号为和其他位统一进行处理,同时减法也可以按照加法来进行处理
- 另外如果两个补码表示的数值相加时,如果最高位(符号位)有进位,则进位被舍弃
- 以-8为例:8的二级制是:0000 1000;按照位数取反:1111 0111;加一 1111 1000(-8)
二进制和十进制的转换
- 授权相加:将二进制数首先写成加权系数展开式,然后按照十进制加法规则求和
- 源码:1011.01 =1X23 +0X22+1X21+1X20+0X2-1+1X2-2=8+0+2+1+0+0.25=11.25
- 十进制转换为二进制:整数部分:除以2取余,逆序排列法
- 小数部分:乘2取整,顺序排列法
基本数据类型的转换
自动类型转换
- 容量小的类型自动转换为容量大的数据类型
- byte、short、int他们三者在计算是会转换成int类型
- 如果将int转换为float或者将float转换为double,不需要强制转换,但是可能会丢失精度
- 也就是说:float和double数据近似值,byte、long、int、short、char数据精确值
- 精确值转近似值的时候可能丢失精度
- 如果用于表示货币值,不建议使用过float和double
- 布尔类型不能进行基本转换
- 代码示例:
package class_baisc_basic;
public class class_seven {
public static void main(String[] args) {
byte a = 10;
short s = a;
int i = s;
long l = i;
char c = '男';
int x = c;
System.out.println(x);
float f = 20f;
double d = f;
System.err.println(a+s+i);
]
}
强制类型转换
- 容量大的类型转换为容量小的类型的时候要加上强制转换符
- 注意:使用此种方式有可能造成精度降低或者数据溢出,使用时要小心
- 使用场景:long中存放的数值也可以使用int来表示,为了提升速度,所以就需要这种方式,因为字节小,运行速度快
- 代码示例:
package class_baisc_basic;
public class class_seven {
public static void main(String[] args) {
short s1 = 10;
s1=(short)(s1+1);
System.out.println(s1);
}
}
转义字符
符号 | 含义 |
---|
\n | 换行符,将当前位置移动下下一行的开头 | \r | 回车,将当前位置移动到本行的开头 | \t | 水平制表,跳转到写一个tab位置 | \\ | 代表反斜线字符:\ | \’ | 代表一个单引号:‘ | \’’ | 代表一个双引号:" |
|