
java中怎么将整数化成二进制数啊!!!急!!麻烦各位前辈能帮我讲解一下 10
java怎么把十进制数转换成二进制数啊,我是初学者,希望各位前辈能够帮帮我,我自己看了一些代码,但是看不懂,希望能帮我写出代码,要有讲解的,谢谢了~~~~!!!我想用字节...
java怎么把十进制数转换成二进制数啊,我是初学者,希望各位前辈能够帮帮我,我自己看了一些代码,但是看不懂,希望能帮我写出代码,要有讲解的,谢谢了~~~~!!!
我想用字节左移来做,帮忙写下这个代码
~~~~~ 展开
我想用字节左移来做,帮忙写下这个代码
~~~~~ 展开
展开全部
最简单的就是直接用Integer.toBinaryString(int i),参数 i 就是你要转的十进制数
展开全部
StringBuilder str=new StringBuilder();//创建可变字符串
int x=10;//要改的数
do
{str.append((x%2).toString());//向可变字符串添加字符
x=x/2;
}while((x/2)>0)
String a=str.toString();//最终答案
java没有定义二进制数的语句,只能保存为字符串形式
int x=10;//要改的数
do
{str.append((x%2).toString());//向可变字符串添加字符
x=x/2;
}while((x/2)>0)
String a=str.toString();//最终答案
java没有定义二进制数的语句,只能保存为字符串形式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈!zc2721写的这个连编译都过不去。。更不要说结果了,菜鸟。。
一楼那个方法是对的,下面是我自己实现的。。
【针对楼主补充的问题,我想解释一下,按位左移是乘法,右移是除,程序已经修改了】
public static String aa(int i){
StringBuffer s = new StringBuffer();
int num = i;
while(num >= 1){
if(num == 1){
s.append(1);
break;
}
s.append(num % 2);//判断num能不能被2整除,如果能被2整除则返回0,否则返回1
num = num >> 1;
}
return s.reverse().toString();//反转字符串
}
顺便说下原理:用2辗转相除至结果为1,将余数和最后的1从下向上倒序写,就是结果,例如整数100转成二进制的过程就是:
100 / 2 = 50 余 0
50 / 2 = 25 余 0
25 / 2 = 12 余 1
12 / 2 = 6 余 0
6 / 2 = 3 余 0
3 / 2 = 1 余 1
最后结果就是:1100100
一楼那个方法是对的,下面是我自己实现的。。
【针对楼主补充的问题,我想解释一下,按位左移是乘法,右移是除,程序已经修改了】
public static String aa(int i){
StringBuffer s = new StringBuffer();
int num = i;
while(num >= 1){
if(num == 1){
s.append(1);
break;
}
s.append(num % 2);//判断num能不能被2整除,如果能被2整除则返回0,否则返回1
num = num >> 1;
}
return s.reverse().toString();//反转字符串
}
顺便说下原理:用2辗转相除至结果为1,将余数和最后的1从下向上倒序写,就是结果,例如整数100转成二进制的过程就是:
100 / 2 = 50 余 0
50 / 2 = 25 余 0
25 / 2 = 12 余 1
12 / 2 = 6 余 0
6 / 2 = 3 余 0
3 / 2 = 1 余 1
最后结果就是:1100100
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*十进制转二进制*/
#include<stdio.h>
#define N 16
void main()
{
int a,b,f=0,c[N];
int i=0;
printf("请输入一个十进制数:");
scanf("%d",&a);
printf("%d二进制为:",a);
if(a<0){f=a;a=-a;}
while(a>=1) /*十进制数除2求余,余数依次存入数组*/
{
b=a%2;
c[i]=b;i++;
a=a/2;
}
while(i<N) /*数组空位补零*/
{
c[i]=0;i++;
}
if(f<0)c[N-1]=1; /*如是负数,最高位改为1*/
for(i-=1;i>=0;i--) /*反序输出数组元数*/
printf("%d",c[i]);
printf("\n");
}
#include<stdio.h>
#define N 16
void main()
{
int a,b,f=0,c[N];
int i=0;
printf("请输入一个十进制数:");
scanf("%d",&a);
printf("%d二进制为:",a);
if(a<0){f=a;a=-a;}
while(a>=1) /*十进制数除2求余,余数依次存入数组*/
{
b=a%2;
c[i]=b;i++;
a=a/2;
}
while(i<N) /*数组空位补零*/
{
c[i]=0;i++;
}
if(f<0)c[N-1]=1; /*如是负数,最高位改为1*/
for(i-=1;i>=0;i--) /*反序输出数组元数*/
printf("%d",c[i]);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询