当前位置:网站首页>每日练习------输出一个整数的二进制数、八进制数、十六进制数。
每日练习------输出一个整数的二进制数、八进制数、十六进制数。
2022-07-30 05:34:00 【北柠陌语】
题目:输出一个整数的二进制数、八进制数、十六进制数。
解题关键:清楚每个进制之间的转换;转换完一个进制之后需要重新设置一遍初始值
思路:1)输出一个整数
2)重新设置num10,不然在每次转换完一次进制后,num10都会变成0
3)二进制转换
4)八进制
5)十六进制
过程: 接下来我们根据我们的解题思路来一步步写代码
第一种方法:
1)输出一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int num10 = sc.nextInt();
2)重新设置num10,不然在每次转换完一次进制后,num10都会变成0
int a = num10;
int b = num10;
int c = num10;
System.out.println("您输入的整数为:" + num10);
3)二进制转换
String er = "";
while (a != 0) {
er = " " + a % 2 + er;//每个位置的数字用空格隔开再连接
a = a / 2;
}
System.out.println("二进制为:" + er);
4)八进制
String ba = "";
while (b != 0) {
ba = " " + b % 8 + ba;//每个位置的数字用空格隔开再连接
b = b / 8;
}
System.out.println("八进制为:" + ba);
5)十六进制
String shiliu = "";
while (c != 0) {
6)判断余数为10,11,12,13,14,15时的情况
if(c%16==10){
shiliu = " " + "A" + shiliu;
}else if(c%16==11){
shiliu = " " + "B" + shiliu;
}else if(c%16==12){
shiliu = " " + "C" + shiliu;
}else if(c%16==13){
shiliu = " " + "D" + shiliu;
}else if(c%16==14){
shiliu = " " + "E" + shiliu;
}else if(c%16==15){
shiliu = " " + "F" + shiliu;
}else{
shiliu = " " + c%16 + shiliu;
}
c = c / 16;
}
System.out.println("十六进制为:" + shiliu);
完整结果如下:
为了方便大家使用,下面附上源码:
//1)输出一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int num10 = sc.nextInt();
//2)重新设置num10,不然在每次转换完一次进制后,num10都会变成0
int a = num10;
int b = num10;
int c = num10;
System.out.println("您输入的整数为:" + num10);
// 3)二进制转换
String er = "";
while (a != 0) {
er = " " + a % 2 + er;//每个位置的数字用空格隔开再连接
a = a / 2;
}
System.out.println("二进制为:" + er);
// 4)八进制
String ba = "";
while (b != 0) {
ba = " " + b % 8 + ba;//每个位置的数字用空格隔开再连接
b = b / 8;
}
System.out.println("八进制为:" + ba);
// 5)十六进制
String shiliu = "";
while (c != 0) {
//6)判断余数为10,11,12,13,14,15时的情况
if(c%16==10){
shiliu = " " + "A" + shiliu;
}else if(c%16==11){
shiliu = " " + "B" + shiliu;
}else if(c%16==12){
shiliu = " " + "C" + shiliu;
}else if(c%16==13){
shiliu = " " + "D" + shiliu;
}else if(c%16==14){
shiliu = " " + "E" + shiliu;
}else if(c%16==15){
shiliu = " " + "F" + shiliu;
}else{
shiliu = " " + c%16 + shiliu;
}
c = c / 16;
}
System.out.println("十六进制为:" + shiliu);
第二种方法:
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = sc.nextInt();
System.out.println("你输入的整数" + num + "转换为二进制为:" + Integer.toBinaryString(num));
System.out.println("你输入的整数" + num + "转换为八进制为:" + Integer.toOctalString(num));
System.out.println("你输入的整数" + num + "转换为十六进制为:" + Integer.toHexString(num));
总结:
这道题有俩种解题方法,第二种方法比较简单是Java种自带的程序,直接引用就可以了,第一种方法是不通过系统自动的程序写,虽然比较麻烦,但大家也是需要理解的,这样对培养我们的编程思想有很大帮助.
明日练习:生成13位条形码
Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。
大家可以自己写写,明天中午12点我准时发出我的写法哦,明天12点不见不散
一生朋友一生情,一生有你才会赢;千山万水总是情,点个关注行不行!
边栏推荐
猜你喜欢
随机推荐
应用实践 | Apache Doris 在百度智能云计费账单系统的应用实践
Redis基础学习
curl (7) Failed connect to localhost8080; Connection refused
Error: npm ERR code EPERM
839. 模拟堆
Mysql8.+学习笔记
More fragrant open source projects than Ruoyi in 2022
G巴士计数(Google Kickstart2014 Round D Problem B)(DAY 89)
从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)
How is crawler data collected and organized?
[GO Language Basics] 1. Why do I want to learn Golang and the popularization of GO language entry
并发编程复习
[Redis Master Cultivation Road] Jedis - the basic use of Jedis
[Mysql] CONVERT函数
Oracle补丁体系及Opatch工具介绍
Docker-compose安装mysql
JVM面试总结
JVM 垃圾回收 超详细学习笔记(二)
4461. 范围分区(Google Kickstart2022 Round C Problem B)
[GStreamer] 插件的名字要和GST_PLUGIN_DEFINE匹配