java非负整数怎么设_使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法...
使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法
使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法
一.题目要求
将非负十进制整数n转换成b进制。(其中b=2~16)
二.流程设计
1.非递归
依据十进制数求余到最后商为0的特点,将num/b作为循环的终止条件,进行循环求进制数。
2.递归
①num/b==0 result.append(num%b)
②num/b!=0transform(result,num/b,b).append(sb);
三.算法实现
1.非递归实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("请输入一个十进制数:");
Scanner sc = new Scanner(System.in);
String num = sc.next();
System.out.println("请输入要转化的进制(2-16):");
String b = sc.next();
if(judge(num)){
System.out.println("输入十进制数格式正确");
}
else{
System.out.println("输入十进制数格式错误");
}
if(judge(b)){
System.out.println("输入转化的进制数格式正确");
}
else{
System.out.println("输入转化的进制数格式错误");
}
String result = transform(num,b);
System.out.println("十进制数 "+num+" 转化为"+b+"进制数为: "+result);
sc.close();
}
public static boolean judge(String num){
char[] numArray = num.toCharArray();
for(int i=0;i
if(numArray[i]<48 | numArray[i]>57){//若输入的字符非数字字符,返回false
return false;
}
}
return true;
}
public static String transform(int num,int b){
StringBuffer sb = new StringBuffer();
while(num!=0){
switch(num%b){
case 10: sb.append("A"); break;
case 11: sb.append("B"); break;
case 12: sb.append("C"); break;
case 13: sb.append("D"); break;
case 14: sb.append("E"); break;
case 15: sb.append("F"); break;
default : sb.append(Integer.toString(num%b));
}
num = num/b;
}
return sb.reverse().toString();
}
public static String transform(String numString,String bString){
int num = Integer.parseInt(numString);
int b = Integer.parseInt(bString);
return transform(num,b);
}
}
2.递归实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("请输入一个十进制数:");
Scanner sc = new Scanner(System.in);
String num = sc.next();
System.out.println("请输入要转化的进制(2-16):");
String b = sc.next();
if(judge(num)){
System.out.println("输入十进制数格式正确");
}
else{
System.out.println("输入十进制数格式错误");
}
if(judge(b)){
System.out.println("输入转化的进制数格式正确");
}
else{
System.out.println("输入转化的进制数格式错误");
}
StringBuffer result = new StringBuffer("");
result= transform(result,num,b).reverse();
System.out.println("十进制数 "+num+" 转化为"+b+"进制数为: "+result);
sc.close();
}
public static boolean judge(String num){
char[] numArray = num.toCharArray();
for(int i=0;i
if(numArray[i]<48 | numArray[i]>57){//若输入的字符非数字字符,返回false
return false;
}
}
return true;
}
//将十进制数转化为b进制数
public static StringBuffer transform(StringBuffer result,int num,int b){
StringBuffer sb = new StringBuffer();
if(num/b==0){
return result.append(num%b);
}
else{//处理字符串result,给末尾加上余数
switch(num%b){
case 10: sb.append("A"); break;
case 11: sb.append("B"); break;
case 12: sb.append("C"); break;
case 13: sb.append("D"); break;
case 14: sb.append("E"); break;
case 15: sb.append("F"); break;
default : sb.append(num%b); break;
}
return transform(result,num/b,b).append(sb);
}
}
public static StringBuffer transform(StringBuffer result,String numString,String bString){
int num = Integer.parseInt(numString);
int b = Integer.parseInt(bString);
return transform(result,num,b);
}
}
四.运行截图
五.总结经验
使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法相关教程
java非负整数怎么设_使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法...相关推荐
- 第E题 转换任意进制 (java方法直接解)==输入一个十进制数N,将它转换成R进制数输出
输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Outpu ...
- java字节数组转换成16进制_Java 将字节数组转化为16进制的多种方案
很多时候我们需要将字节数组转化为16进制字符串来保存,尤其在很多加密的场景中,例如保存密钥等.因为字节数组,除了写入文件或者以二进制的形式写入数据库以外,无法直接转为为字符串,因为字符串结尾有\0,当 ...
- java 8个字节转一位_8个字节的16进制数 怎么转换成10进制数
Java codeimport java.util.Arrays;public class ChangeBytesToNumber{ public static void main(String[] ...
- java将一个数转成36进制的数_编程实现将一个N进制数转换成M进制数。
python: 手写算法版: def conversion_num(num, src, dest): rtn = '' # 1.校验源和目标是否相同 if src == dest: rtn = num ...
- java 16进制数组 字符串_byte数组转换成16进制字符串和字符数组的方法
byte数组转换成16进制字符串String: public class CommonUtil { /** * byte数组转换成16进制字符串 * @param src * @return */ p ...
- java 16进制字符转10进制_java 16进制字符串怎么转换成10进制字符串
展开全部 toHexString public static String toHexString(int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式. 如果参数为负,那么无符号整 ...
- java开发区块链_使用Java语言从零开始创建区块链
目前网络上关于区块链入门.科普的文章不少,本文就不再赘述区块链的基本概念了,如果对区块链不是很了解的话,可以看一下我之前收集的一些入门学习资源: 对区块链技术感到新奇的我们,都想知道区块链在代码上是怎 ...
- java中的进制输出转换_java中进制的转换,Byte与16进制的转换
java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十 ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
最新文章
- 每日一皮:多线程理想与现实的差距
- 三、糖醋鲤鱼(Sweet and sour carp)
- u852日期限制解决补丁_用友U8hotfix和补丁包替换原则及注意事项
- ubuntu16.04中安装tensflow教程
- 程序员修神之路--设计一套RPC框架并非易事
- 《凡人修仙传》中打斗场景(c++多态实现)
- ASP.Net Mvc 发布网站 (样式+图片问题)
- Python入门之经典函数实例
- NVIDIA NSight System工具安装和使用介绍(MacOS)
- 基于ZEGO SDK实现多人视频通话功能
- rn 地图根据区名获取经纬度_React Native获取地理位置(获取具体城市、经纬度)...
- 数据结构测试题——树和二叉树(一)
- 最简单的 DRM 应用 drm设备不工作
- 快速排序算法quickSort
- java 根据用户名生成头像。
- linux sh脚本 -p,“读取-p”在linux shell脚本中做了什么?
- 【思维导图】巩固你的JavaScript知识体系
- kafka 报错: LEADER_NOT_AVAILABLE
- Linux ❉ 正则表达式
- 为什么这么努力还这么贫穷?
热门文章
- php 命令设计模式示例,php设计模式(十九)命令模式-Fun言
- mysql 授权 失败_完美解决mysql客户端授权后连接失败的问题
- android layout_margin的值,Android自定义ViewGroup( 支持layout_margin属性)
- 想要导航首页提示页_如何设计电商首页运营后台
- html语言汇总,第三讲HTML语言全面介绍汇总.ppt
- mybatis 调用 oracle函数_MyBatis之启动分析(一)
- ❤️《大前端—了解与使用ES6》
- 微信小程序弹框禁止下面的页面滚动
- JavaScript:模块化及模块化规范
- python语言与c语言相比在分支结构上有什么不同_C语言顺序结构和分支结构总结...