进制及基本类型的转换

1、进制

整型常量的三种表示形式:
◆十进制整数,如:12,-314,0。
◆八进制整数,要求以 0 开头,如:012。
◆十六进制数,要求 0x 或 0X 开头,如:0×12。
进制的意思表示满了那个值就需要往前进一位。比如10 进制,9 再加 1 的话就成了10

a.十进制转二进制

方法是:连续除以 2 【除以 2 得到余数,然后用得到的商继续除以 2 最后在再反转余数】

b.二进制转十进制

二进制1010

每一位的从右到左的单位分别是2的0次方,2的1次方,2的2次方,2的3次方所以二进制1010等于每一位上的数字*单位在相加。

结果是10。

c.其他

10进制转16以及8以及2都是除以对应的进制的值

16以及8以及2进制转成10进制都是每一位上的数字*单位

8进制转成16进制,需要先把8进制转成10进制然后在转成16进制

eg.

16进制abcdef分别表示101112131415

2、基本类型之间的转换

*boolean类型不可以转换为其他的数据类型。

a.整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:

◆容量小的类型自动转换为容量大的数据类型;数据类型按容量大小排序为:byte,short,char->int->long->float->doublebyte,short,char之间不会互相转换,他们三者在计算时首先回转换为int类型

(比如int和long类型进行运算会把int先先转成long以此类推)

◆容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出,使用时要格外注意。

◆强制转换语法

数据类型变量名=(数据类型)被转数据值;

//double类型数据强制转成int类型,直接去掉小数点。

int i=(int)1.5;

◆有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。

◆小数常量(如:1.23)默认为double

◆整数常量(如:123)默认为int

示例代码

public class TestConvert{
public static void main(Stringarg[]){
int i1=123;
int i2=456;
double d1=(i1+i2)*1.2;//系统将i1和i2转换为double型进行计算
float f1=(float)((i1+i2)*1.2);//需要加强制转换符
byte b1=67;
byte b2=89;//系统将b1,b2先转换为int型运算,因为b3是byte,大转小需要强制转换符
byte b3=(byte)(b1+b2);
System.out.println(b3);
float f3=1.23f;//因为浮点类型默认是double申明为float后面的值必须加f
long l1=123;
long l2=30000000000L;//必须加l
float f=l1+l2+f3;//系统将转换为float型计算
long l=(long)f;//强制转换会舍去小数部分(不是四舍五入)
System.out.println(l);
 }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值