进制转换(待续)

十进制转二进制
用2辗转相除至结果为1 
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0 
151/2 = 75 余1 
75/2 = 37 余1 
37/2 = 18 余1 
18/2 = 9 余0 
9/2 = 4 余1 
4/2 = 2 余0 
2/2 = 1 余0 
故二进制为100101110 

二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制: 
第0位:1乘2的0次方=1 
1乘2的1次方=2 
0乘2的2次方=0 
1乘2的3次方=8  
0乘2的4次方=0 
1乘2的5次方=32 
1乘2的6次方=64 
0乘2的7次方=0 
然后:1+2+0 
 +8+0+32+64+0=107. 
二进制01101011=十进制107

16进制转10进制:
像10进制数一样的说,把16进制数看成有个位数,十位数,百位数……
将“个位数”乘上16的0次方(*16^0),
将“十位数”乘上16的1次方(*16^1),
将“百位数”乘上16的2次方(*16^2),
……
……
最后将所有上面得到的数加起来就是他的十进制数了
例如:将16进制的 (10A) 转换成10进制的数
A*1=10
0*16=0
1*16^2=256
所以所得的数为10+0+256=266

10进制转16进制:
这个有点麻烦……
    将给定的十进制整数除以基数16,余数便是等值的16进制的最低位。 
    将上一步的商再除以基数16,余数便是等值的16进制数的次低位。 
    重复上一步骤,直到最后所得的商等于0为止。各次除得的余数,便是16进制各位的数,最后一次的余数是最高位

例如:10进制的 (100) 变为16进制
先把100除以16,得到6余数为4,则“个位数”为4;
用6除以16,得到0余数为6,则“十位数”为6。所以100的16进制为“64”。
依此类推。

注:
A=10  B=11  C=12  D=13 E=14  F=15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,泛型是一种强类型机,它可以让你在编译时检查类型错误,从而提高代码的安全性和可读性。在使用泛型时,我们经常会遇到父类和子类的泛型转换问题。 首先,我们需要明确一点:子类泛型不能转换成父类泛型。这是因为Java中的泛型是不协变的。例如,如果有一个类A和它的子类B,那么List<A>和List<B>之间是不存在继承关系的。 下面我们来看一个例子: ```java public class Animal { //... } public class Dog extends Animal { //... } public class Test { public static void main(String[] args) { List<Animal> list1 = new ArrayList<>(); List<Dog> list2 = new ArrayList<>(); list1 = list2; // 编译错误 } } ``` 在这个例子中,我们定义了Animal类和它的子类Dog。然后我们定义了两个List,分别是List<Animal>和List<Dog>。如果将List<Dog>赋值给List<Animal>,会出现编译错误。这是因为List<Animal>和List<Dog>之间不存在继承关系。 那么,如果我们想要让子类泛型转换成父类泛型,应该怎么办呢?这时我们可以使用通配符来解决问题。通配符可以表示任意类型,包括父类和子类。例如,我们可以将List<Dog>赋值给List<? extends Animal>,这样就可以实现子类泛型转换成父类泛型了。 下面我们来看一个使用通配符的例子: ```java public class Animal { //... } public class Dog extends Animal { //... } public class Test { public static void main(String[] args) { List<Animal> list1 = new ArrayList<>(); List<Dog> list2 = new ArrayList<>(); list1 = list2; // 编译错误 List<? extends Animal> list3 = new ArrayList<>(); list3 = list2; // 正确 } } ``` 在这个例子中,我们定义了List<? extends Animal>来表示任意继承自Animal的类型。然后我们将List<Dog>赋值给List<? extends Animal>,这样就可以实现子类泛型转换成父类泛型了。 总结一下,Java中的泛型是不协变的,子类泛型不能转换成父类泛型。如果需要实现子类泛型转换成父类泛型,可以使用通配符来解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值