java中如何将十进制数字转化成二进制?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何将十进制数字转化成二进制?相关的知识,希望对你有一定的参考价值。
java中有没有什么方法将十进制转化成二进制的方法?再就是转化成二进制后,有没有什么方法可以判断它的第几位上是0,第几位上是1?
如果表达小于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));
扩展资料:
在windows下编译java文件、执行:
1、先创建一个txt,更改为test.java。
2、编写代码,为输出为holloword。
3、找到cmd,并进行打开cmd。
4、编译java文件,输入命令为javac test.java。
5、如果没有报错,查看当前目录下是否有class文件产生。
6、执行class文件,在命令输入java test,输出为holloword。
参考技术A java进制转换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() 参考技术B java.lang.Integer这个API包中有进制转换的函数
public static String toBinaryString(int i)
public static String toHexString(int i)
public static String toOctalString(int i)
这3个函数都可以将十进制的整数转换成二、一六、八进制数
不过转换后的结果都是字符串的形式
既然得到的是字符串
我想你当然就可以利用string.sub(x-1,x)的方法来判断该x位的数等于0还是1
之后再把x返回出来,那么就知道结果了本回答被提问者采纳 参考技术C 需要这么做么,如果你愿意,你就可以直接把1个10进制的数当作2进制来看待的.判断他某几位是不是0可以用掩码的方法:
比如:
判断10进制10的第2位是不是1,可以用 10 & 2 是否等于0来得到,等于0,该位不是1,否则该位是1,原理, 10和2的2进制代码是:
1010 & 0010 = 0010 != 0 所以10的第2位是1,依次类推,用10&4去判断第3位是不是1.用6判断第2位和第3位是不是同时为1. 参考技术D package com;
import java.util.Scanner;
public class Demo
public static void main(String[] args)
Scanner input = new Scanner(System.in);
System.out.println("请输入需要转换的数:");
System.out.println("转换之后为:"+io(toBin(input.nextInt())));
static String toBin(int hi)
if(hi/2 == 0) return Integer.toString(hi%2);
return toBin(hi/2)+Integer.toString(hi%2);
static String io(String hi)
if(hi.indexOf("-") >=0)
hi = hi.replaceAll("-", "");
return "-"+hi;
return hi;
怎么把字符串转化为十六进制字符串 java
思路:用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值。方法如下:
public static String str2HexStr(String str)
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++)
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f; //位于运算
sb.append(chars[bit]); //进行字符串的拼接
return sb.toString();
调用方法如下:
String str = str2HexStr("asbd"); 参考技术A 字符是指String?
十六进制字符串,指十六进制数字对应的字符串?
那就是
Integer.toHexString( (byte) String.charAt(i) )本回答被提问者采纳
以上是关于java中如何将十进制数字转化成二进制?的主要内容,如果未能解决你的问题,请参考以下文章