⑴ 请问怎么用java编程语言,将10进制的数字转为2进制,8进制,16进制具体代码怎么写
import java.io.*;
class test
{
static BufferedReader keyboard=new
BufferedReader(new InputStreamReader(System.in));
public static void main(String[]args)throws IOException
{
int n,base;
n=Integer.parseInt(keyboard.readLine());
exchange(n);
System.out.println();
}
public static void exchange(int n)
{
if(n>0)
{
exchange(n/2);
System.out.print(n%2);
}
}
}
这个是十进制转化为二进制的
用的是递归方法
八进制与十六进制思路相同
⑵ java实现:整数进制相互转换
java实现:整数进制相互转换的方法:
十进制转为二进制、八进制、十六进制, 用 Integer.toXXXString()方法
(1)十进制转为二进制: Integer.toBinaryString(int i);
public static String toBinaryString(inti):以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
(2)十进制转为8进制 :Integer.toOctalString(int i);
public static String toOctalString(inti):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
(3)十进制转为16进制: Integer.toHexString(int i);
public static String toHexString(inti):以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
举例:
Stringbin=Integer.toBinaryString(10);
Stringoct=Integer.toOctalString(10);
Stringhex=Integer.toHexString(10);
2.十六进制、八进制、二进制转为十进制(有两种方法):parseInt() 和valueOf()。
Integer.parseInt(String s,int radix);
public static int parseInt(String s,int radix) throws NumberFormatException{}使用第二个参数作为指定的基数,将字符串参数解析为有符号的整数;
Integer.valueOf(String s,int radix);
public static Integer valueOf(Strings, intradix) throws NumberFormatException{}返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
举例:
try{
inti=Integer.parseInt("a",16);
//输出为10进制数10
System.out.println(i);
}catch(Exceptione){
e.printStackTrace();
}
try{
//十六进制转成十进制
Stringhex=Integer.valueOf("FFFF",16).toString();
System.out.println(hex);
//八进制转成十进制
Stringoct=Integer.valueOf("12",8).toString();
System.out.println(oct);
//二进制转十进制
Stringbin=Integer.valueOf("0101",2).toString();
System.out.println(bin);
}catch(Exceptione){
e.printStackTrace();
}
⑶ 用java写一个 十进制转为二进制的程序
将十进制转换成二进制的算法如下:
1.给定一个数;
2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。
3.然后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就可以了。
import java.util.Scanner;
public class Hi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个十进制需要转换为二进制的正整数");
int n=sc.nextInt();
int r;
int i=0;
int[] a=new int[20];
do{
if(n%2==1)
r=1;
else
r=0;
a[i]=r;
n/=2;
i++;
}while(n>0);
System.out.println("十进制转换为二进制後:");
for(int j=i-1;j>=0;j--){
System.out.print(a[j]);
}
}
}
⑷ 如何用JAVA语言将十六进制数转换成二进制数,并输出
importjava.util.Scanner;
publicclassT1{
publicstaticvoidmain(Stringargv[]){
Scannersc=newScanner(System.in);
System.out.println("输入16进制数:");
Stringhexstr=sc.next();
Integernum=Integer.parseInt(hexstr,16);
System.out.println(Integer.toBinaryString(num));
sc.close();
}
}
⑸ java编程:正整数N转换成一个二进制数
思路:不断对N%2,将结果保存到一个字符串中,再对N/2后继续循环
最后逆置字符串
⑹ java中如何将十进制数字转化成二进制
如果表达小于2^31-1的正数代码如下:
public void binaryToDecimal(int n){
int t = 0; //用来记录位数
int bin = 0; //用来记录最后的二进制数
int r = 0; //用来存储余数
while(n != 0){
r = n % 2;
n = n / 2;
bin += r * Math().pow(10,t);
t++;
}
System.out.println(bin);
}
使用字符串的拼接(+)来实现大于2^31-1的数,代码如下:
public void binaryToDecimal(int n){
String str = "";
while(n!=0){
str = n%2+str;
n = n/2;
}
System.out.println(str);
}
可以右移后再与0x01进行&运算得到第一位的数字判断判断它的第几位上是0,第几位上是1,代码如下:
class ByteMove
{
public static void main(String[] args)
{
int i = 7;
move(i);
}
static void move(int num){
for(int i= 0;i<6;i++){
System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));
}
}
}
⑺ JAVA中的十进制转换为二进制
public class tobin {
public static void main(String[] args) {
int x = 17;//转换前的十进制数
int num=0;
for(int y=x;y!=0;num++)y=y/2;//计算回转换后二进制数的位数
int[] bin = new int[num];//转换后的答二进制数
for(int i=num-1,y=x;i>=0;i--){
bin[i]=y%2;
y=y/2;
}
for(int i=0;i<num;i++)
System.out.print(bin[i]);
}
}