进制之间的转换(java代码实现)
来源:互联网 发布:ios网络编程 编辑:程序博客网 时间:2024/05/16 07:15
**
输入要求:
要求1. 此程序没有加以控制,输入时请输入正确的要求,比如需要将8进制的数转化为其它进制的数时,字符串中不能出现9.
要求2. 因为数据类型为int,数不能过大,过大会出现错误。(也可以将int类型改为long类型,范围会增大。)**
import java.util.Scanner;
public class Transform {
public static void main(String[] args) { String str = null; int num1 = 0,num2 = 0; System.out.println("请输入要转化的字符串:"); Scanner reader_str = new Scanner(System.in); if(reader_str.hasNext()){ str = reader_str.next(); } System.out.println("请输入字符串的进制数:"); Scanner reader_num1 = new Scanner(System.in); if(reader_num1.hasNext()){ num1 = reader_num1.nextInt(); } System.out.println("请输入需要转化成的进制数:"); Scanner reader_num2 = new Scanner(System.in); if(reader_num2.hasNext()){ num2 = reader_num2.nextInt(); } StringBuffer result = anyToany(num1, num2, str); System.out.println(result);}// 将number从10进制转化十六进制public static StringBuffer tenToSixteen(int number) { StringBuffer str = new StringBuffer(); int shang = number; int yu; while (shang != 0) { shang = number / 16; yu = number % 16; number = shang; if (yu > 9) { char form = (char) (yu - 10 + 'a'); str.append(form); } else { str.append(yu); } } str.reverse(); return str;}// 将str从num进制转化到十进制public static int anyToTen(String str, int num) { int sum = 0; int num_after; for (int i = str.length() - 1; i >= 0; i--) { char c = str.charAt(i); if ((int) c > 96) {// 如果c是个字母 num_after = c - 'a' + 10; } else { // 如果c是个数字 num_after = c - '0'; } /* System.out.println("c"+i+": out:"+num_after); */ sum += num_after * Math.pow(num, str.length() - 1 - i); } return sum;}// 将number从十进制到num进制的转化public static StringBuffer tenToAny(int number, int num) { StringBuffer str = new StringBuffer(); int shang = number; int yu; while (shang != 0) { shang = number / num; yu = number % num; number = shang; if (yu > 9) { char form = (char) (yu - 10 + 'a'); str.append(form); } else { str.append(yu); } } str.reverse(); return str;}// 将str从num1进制转化num2进制public static StringBuffer anyToany(int num1, int num2, String str) { int first_form = anyToTen(str,num1); //先将str从num1进制转化为十进制 StringBuffer s = tenToAny(first_form, num2);//将十进制转化为num2进制 return s;}
}
测试截图:
在线进制转换网站:http://tool.oschina.net/hexconvert/
0 0
- 进制之间的转换(java代码实现)
- 代码实现十进制与其他进制之间的转换
- 使用java语言实现进制之间的相互转换
- 使用java语言实现进制之间的相互转换
- js实现进制之间的转换
- c#实现16进制和字符串之间转换的代码
- c#实现16进制和字符串之间转换的代码
- c#实现16进制和字符串之间转换的代码
- C# 实现16进制和字符串之间转换的代码[转]
- c#实现16进制和字符串之间转换的代码
- c# 实现16进制和字符串之间转换的代码
- c#实现16进制和字符串之间转换的代码
- java 进制之间的转换
- java进制之间的转换
- java进制之间的转换
- 进制之间的转换 Java
- Java 中 进制之间的转换
- java 进制之间的转换
- C#.NET网络程序开发的基本类(一)(C#---网络编程)
- Ubuntu 使用 su 切换用户时提示 Authentication failure 解决方法
- 如何用文件对比工具自动缩放对比图片
- unable to resolve module
- windows下创建线程编程
- 进制之间的转换(java代码实现)
- RobotFramework打不开谷歌浏览器问题
- C++中多态怎样由虚函数实现。和纯虚函数介绍
- 图像检索服务器编写问题记录——服务器端模型再思考
- [LeetCode]75. Sort Colors
- Linux下安装MySQL
- Oracle 列转行函数 Listagg()
- web使用的加密集合
- 使用 Apache Spark 的 Lambda 架构