java-类型转换 -进制,进制转换- (原码,反码,补码)11

 

 

 

 

 例子:

public class Type {
public static void main(String[] args) {
// 类型转换
// 将取值范围小的赋值给取值范围大的
// 小的给大的赋值可以直接给
// 数据类型不统一,无法直接做运算,需要先进行转换,小的会先提升为大的再继续运算

int a = 10;
double b = a;
System.out.println(a); //10
System.out.println(b); //10.0
// byte,char,short做运算时,需要先提升为int才能做运算
// 错误演示:
// byte aa = 10;
// byte bb = 20;
// byte cc = aa +bb;
// 正确演示:
byte aa = 10;
byte bb = 20;
int cc = aa +bb;
System.out.println(cc); //30
// 问题:char怎么转int?
// 答:按数值表进行转换
int aaa = 1;
char bbb = 'a';
int ccc = aaa+bbb;
System.out.println(ccc);//98

double d = 10 + 'a' + 12.3;//119.3
System.out.println(d);
// 把一个大的取值范围的值赋值给一个范围小的值,不需要强制赋值,需要加入转换
// 这样[有可能]会导致精度损失,比如e给f,会损失0.3
// 之所以说是有可能,是因为如果小的取值范围可以接得住则不会丢失精度
// 例如ee和ff
double e = 12.3;
int f = (int)e;
System.out.println(f);//12
byte ee = 10;
byte ff = (byte)ee;
System.out.println(ff);
// 130作为int类型,且超出了byte类型的-128~127的表示范围,所以报错
// 如果强制转换byte nmb2 = (byte)130;输出结果是-126
int nmb = 130;
byte nmb2 = (byte)nmb;
System.out.println(nmb2); //-126
}
}

 

 

 

public class Octal {
public static void main(String[] args) {
/*
十进制:默认
二进制:0b开头
八进制:0开头
-编写数值时,尽量不要用0开头,如果用到时,可以用做字符串包裹起来
System.out.println("009");
十六进制:0x开头
0-9,a-f排列是16进制
*/
System.out.println(110);//110
System.out.println(0b110);//6
System.out.println(0110);//72
System.out.println(0x110);//272
/*
公式:系数*基数的权次幂相加
系数:每一位上的数
基数:当前进制数
权:从右往左,依次为0,1,2,3,4,5...
8421快速转换法:

*/
}
}

  

 

 8421快速转换法:

 

 原码:

 

 

 

posted @ 2023-03-01 15:06  文采呱呱  阅读(31)  评论(0编辑  收藏  举报