java 进制转换有什么用,在java中如何用for循环把一个十进制数转换成二进制
大家好,关于java 进制转换有什么用很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于在java中如何用for循环把一个十进制数转换成二进制的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
用JAVA把二进制数转换成十进制数。
二进制转十进制
Integer.valueOf("0101",2).toString()
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
System.out.println("输入一个二进制数:");
String a= sc.nextLine();
int d= Integer.parseInt(a, 2);// 2进制
int o= Integer.parseInt(a, 8);// 8进制
System.out.println("二进制转为十进制:"+ d);
System.out.println("八进制转为十进制:"+ o);
计算机内部使用二进制表示数
二进制与十进制的转换是比较复杂的。比如我们要让计算机计算50+50=?,那么首先要把十进制的50转换成二进制的“50”——110010,这个过程要做多次除法,而计算机对于除法的计算是最慢的。把十进制的50转换成二进制的110010还不算完,计算出结果1100100之后还要再转换成十进制数100,这是一个做乘法的过程,对计算机来说虽然比除法简单,但计算速度也不快。
以上内容参考:百度百科-十进制
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));
}
}
}
扩展资料:在windows下编译java文件、执行:
1、先创建一个txt,更改为test.java。
2、编写代码,为输出为holloword。
3、找到cmd,并进行打开cmd。
4、编译java文件,输入命令为javac test.java。
5、如果没有报错,查看当前目录下是否有class文件产生。
6、执行class文件,在命令输入java test,输出为holloword。
进制转换问题
首先800/16=50(十进制转16进制将要转换的数值除以你要转换的进制数)
50/16=3余数是2(将商继续除以16直到0为止)
那么将3除以16 3/16得到的商是0余数是3(进制转换的商个位数值得到0了)
那么我们三次计算的余数分别是0,2,3将余数倒过来排列就是我们得到的十进制转十六进制的数,表示的时候呢,320容易和其他进制的数混淆,加一个十六进制标示H那么结果为:320H参考文档:http://www.end100.com/juzhao/280.html
低位256向高位+1低位变0这个问题深了点,不过我愿意动脑子分析:首先256进制的递进是 256写为10(比如2进制中 2写为10 256进制也应当写为10至于你说的加1后低位是0不该是256就进制来看的话怎么感觉应该是257进制个位为0,不过C当中有个移位往左边移1位应该是560向右移位 025都与你说的不相符,可能是我知识面小了点。我也是初学,不过不是JAVA,相互探讨嘿嘿。)
在java中如何用for循环把一个十进制数转换成二进制
进制转换的思想
抓住关键点,不管多少进制,一个数的值是不变。
先搞清楚进制衡量了什么:n进制实际上代表一个数位与相邻数位之间的权重比,简单点说,相邻两位,一个高位的值代表n个低位。
一个n进制的数,转换为一个m进制的数,基本过程就是反复的——对n进制表示的m取余,除以n进制表示的m。为什么不直接写除以m呢?举个例子,假设十进制数99转换为2进制,那么过程就是反复——取余,除以2;看起来是除以m了;那反过来,如果把二进制数1100011(十进制数99)转换为十进制呢?这是时候应该对1010(十进制数10)取余,除以1010。
按问题要求代码如下:
public static void main(String[] args){
int a= NUM;// NUM代表十进制数
String binary="";// binary代表最后二进制字符串
for(; a!= 0; a/= 2){
binary= a% 2+ binary;
}
}
实际上Java中已经提供了这种工具类,Integer.toBinaryString(int a)就可以实现该转换。
文章到此结束,如果本次分享的java 进制转换有什么用和在java中如何用for循环把一个十进制数转换成二进制的问题解决了您的问题,那么我们由衷的感到高兴!