一.进制转换
这道题的思路就是先把每个数模对应的进制.再除以,就得到对应的,
因为可能会有16进制,所以直接弄一个字符串数组,按照"0123456789ABCDEF"顺序存储,再用模找里面对应的就可以了
但是有可能是负数,所以我们需要在此之前判断一下
如果用字符串临时拼接会产生大量临时变量.所以用StringBudilder
sb是不能这样初始化的,只能构建
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
boolean flg=false;
if(n<0){
n=-n;
flg=true;
}
if(n==0){
System.out.println(0);return;
}
StringBuilder sb=new StringBuilder();
String table="0123456789ABCDEF";
while(n>0){
sb.append(table.charAt(n%m));
n=n/m;
}
if(flg){
sb.append("-");
}
sb.reverse();
System.out.println(sb);
}
}
这种情况没有考虑到0的时候,所以需要再次构建一下
二.笔试强训订正
1.选择题
注意>>>是无符号右移一位,高位用0补充
这道题要搞清楚按值传递和按地址传递
最后一句代码,表示将y的引用指向x
实际上y本身指向的对象并没有发生改变
A选项只能表示引用本类的其他方法,C选项引用父类.
也是包装类和基本数据类型之间,
final表示属性的不可变.和方法的不可重写但是可以继承