1、进制的概念
常用的进制:二进制、八进制、十进制
数制的表示方法:
数字下标法,对于不同进制的数可以将它们加上括号再用数字下标表示进制
![]()


常见进制的运算规则
二进制:逢二进一
基数为2,数值部分用两个不同的数字0、1来表示
十进制:逢十进一
基数为10,数值部分用0、1、2、3、4、5、6、7、8、9来表示
十六进制:逢十六进一
基数为16,有十六种数字符号,除了在十进制中的0至9外,还另外用6个英文字母A,B,C,D,E,F来表示十进制数的10至15
2、转换模板
十进制转n进制模板
public static String con(int x,int n){
StringBuilder str1 = new StringBuilder();
while (x>0){
//取每一位的值
str1.append(x % n);
x /= n;
}
//返回反转字符串
return str1.reverse().toString();
}
例题---二进制表示
https://www.lanqiao.cn/problems/582/learning/
小明要用二进制来表示1到10000的所有整数,要求不同的整数用不同的二进制表示,请问,为了表示1到10000的所有整数,至少需要多少个二进制位?
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int res = 0,sum = 0;
for (int i = 0; ; i++) {
sum += Math.pow(2,i);
if(sum >= 10000){
res = i+1;
break;
}
}
System.out.println(res);
sc.close();
}
}
例题---进制
https://www.lanqiao.cn/problems/2489/learning/
请问十六进制数2021ABCD对应的十进制是多少?
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String str = "2021ABCD";
int k = 0;
long sum = 0;
for (int i = str.length() - 1; i >= 0; i--,k++) {
char c = str.charAt(i);
if (c>='A' && c <= 'D'){
int res = c - 'A' + 10;
sum += (long)res * Math.pow(16,k);
}else{
int res = c - '0';
sum += (long)res*Math.pow(16,k);
}
}
System.out.println(sum);
}
}
本文介绍了进制的基本概念,包括二进制、八进制、十进制和十六进制的运算规则,并提供了Java代码示例,展示了如何进行进制转换和计算1到10000所需二进制位数。

被折叠的 条评论
为什么被折叠?



