java——进制的转换
来源:互联网 发布:家电 进销存 源码 编辑:程序博客网 时间:2024/06/05 08:58
在做ACM中遇到了p2031和p2051两道题都是进制转换,
p2031是输入两个数n,m;n为十进制数,m为需要转换成的进制。
在这里就来讲一下java中进制转换的思路:
在现实生活中计算进制转换是用某个数去除某个进制数,然后取余数,从而进行进制转换。
在编程思想中就是当n/m>0时,进行求余,把余数放到数组中。
但是当求到最后的余数如果不为0,则还需要进行一次判断,n%m!=0时,进行最后一次求余。
在p2031中,它是随机求从2-16中的任何一个进制,所以,我们要将这些可能求得的余数放入一个字符数组中,
char c={'0','1'....}
然后用字符串来接收所求的余数,在输出,即可
p2031的代码如下:
import java.util.*;
class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
char chs[] = { '0', '1' };
while (sc.hasNext()) {
int a = sc.nextInt();
boolean isNegetive = false;
if (a < 0) {
a = -a;
isNegetive = true;
}
String sum = "";
while (a / 2 > 0) {
sum = chs[a % 2] + sum;
a = a / 2;
}
if (a % 2 != 0) {
sum = chs[a % 2] + sum;
}
if (isNegetive) {
System.out.println("-" + sum);
} else {
System.out.println(sum);
}
}
}
}
同理就可以来解p2051的问题
java中,有直接进行进制转换的函数
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()
- java——进制的转换
- 进制转换—Java
- java回顾篇——进制转换,变量,数据类型的转换,运算符
- JAVA的进制转换:
- java进制的转换
- java进制的转换
- java的进制转换
- Java的进制转换
- java的进制转换
- JAVA Integer进制的转换
- java 进制之间的转换
- N05.java笔记【进制的转换】
- java进制之间的转换
- Java语言写的进制转换
- java进制之间的转换
- 黑马程序员--Java进制的转换
- Java的万能进制转换
- java进制的转换与运算
- python socket编程
- hdu 5924/Mr. Frog’s Problem
- 使用JDBC构建简单的数据访问层
- HDU2017--字符串统计
- 不利用函数直接构造链表
- java——进制的转换
- (重点)[LeetCode]Longest Valid Parentheses
- Java中的异常学习
- Java垃圾回收机制
- HDU 3560 Graph’s Cycle Component(并查集)
- Ural1297Palindrome最长回文串.manacher解法
- Leetcode-69. Sqrt(x)
- 黑客的日常生活是怎样的?论黑客的道德与操守
- Java入门第二季-2.封装