学习java第五天

基本数据类型运算

定义:指七种基本数据类型的运算,布尔型不参与运算(char为啥能进行计算,因为虽然字符型不是数字但是它在计算机中映射的就是二进制,转化为十进制a就是97,b是98以此类推,A是65往后以此类推)

1.自动类型提升:数字容量小的和数字容量大的数据类型做运算时,结果自动提升为容量较大的数据类型。

			(byte char short) ----int---- long---- float---- double这些包含数值范围依次增大,所以当 byte b1 = 100;
	****特别的当byte char shout 这三个之间做运算时起码要用int 接收;								  int c1 = 8000;
							一般用int接收整型就够了。21亿数字基本都包括了							  int c2 = b1+c1;       //这里c2起码要用int定义 long float double也都可以,不然编译会报错不兼容的数据类型
																									  System.out.print(c2); 

2.强制类型转换:自动类型提升的逆运算,有的时候人们想把大范围的数据类型转换为小范围的数据类型,比如: double b1 = 12.4;
int b2 = b1;
System.out.println(b2) //编译时候会报错,double转化为int会有损失,所以就需要“强转符” int b2 = (int)b1;//强制把double转化为int型。
****可能会导致精度损失

String可以和八种数据类型做运算,且只能是拼接运算"+";结果任然为String类型

进制问题

计算机底层都是以二进制的补码来存储数据的
二进制:0b/0B开头;其次还要注意最高位为符号位,不能加入运算,所以0b之后第一位数字要用来看正负而不能加入运算。
八进制:0开头
十进制:都懂
16进制:0x/0X开头,09,AF代表10~15,某一位满十六进一,这一位变为0。

二进制转化为十进制:

二进制中最高位为符号位,最高位为0时表示这个二进制数为正,最高位为1时表示为这个负数(的补码)

二进制数为正时,三码合一,原码,反码,补码三个都相同,所以不说补码这个概念,要转化为十进制
在这里补码就是原码,所以直接就是:0b00010101-------->12^0 + 12^2 + 1*2^4 =21

为负时,三码不相同,二进制数表示为这个数的补码,补码要变回原码就要先减一,然后除了符号位给其他位取反。原码变补码就先求反再加一。(变为原码只是为了好读数,负数的原码读多少代表多少)
例如0b10001111,这个二进制数最高位是1,说明是负数,这个二进制是这个负数的补码,变回原码就是先减一得到反码0b10001110,然后取反得到原码0b11110001,然后转化为十进制加负号,二的六次方加二的五次方加二的四次方加1快就等于113,添负号所以就是,-113
还有就是一个正二进制数符号位变为1时,就会变成对应负数的原码了,想求其补码就求反再加一,一般给你一个二进制数给的都是补码。

十进制转二进制:

除二取余然后从下往上,从前到后依此写。

二进制转八进制(正好是二进制的三次幂):把二进制数三位一组,然后每组都求对应的十进制数,放在一起开头加个0就是八进制数 (尚硅谷65集中间讲明白了八进制每位最高是7,二进制每三位之和最大是7,所以可以这样转化,不必要麻烦的先转十进制在转八进制)
比如 011101001,011 101 001分别转化为十进制就是3 5 1,放在一起前面加个零,就是0351

二进制转十六进制(正好是二进制的四次幂):同理把二进制数四位放在一起,然后求对应的十进制数,放在一起开头加个0x。

十六进制,八进制转二进制,只需要把每个数拆成对应的二进制然后放在一起
比如 03514(先判断是个八进制数,然后每位数字拆三位,然后拼在一起)
1就是001
5就是101
3就是011
4就是100放在一起就是0B011101001100
或者 0xef5(先判断是个十六进制数,然后每个数字拆成4位,然后拼在一起)
e代表的是14然后二进制就是1110
f代表的是15然后二进制就是1111
5代表的二进制数就是0101放在一起就是0B0111011110101

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值