java 十进制转二进制代码_十进制转二进制代码

睡不着  看了一下以前的博客 发现算法bug修复一下   2017年10月4日 01:38:44

网上看到一个代码 很有意思大家可以看看

public static voidmain(String[] args) {int n = -10;

String result= "";boolean minus = false;//如果该数字为负数,那么进行该负数+1之后的绝对值的二进制码的对应位取反,然后将它保存在result结果中

if(n < 0){

minus= true;

n= Math.abs(n + 1);

}while(true){int remainder = (!minus && n % 2 == 0) || (minus && n % 2 == 1) ? 0 : 1;//将余数保存在结果中

result = remainder +result;

n/= 2;if(n == 0){break;

}

}//判断是否为负数,如果是负数,那么前面所有位补1

if(minus){

n=result.length();for(int i = 1; i <= 32 - n; i++){

result= 1 +result;

}

}

System.out.println(result);

}

--------------------------------------------------------------------------------------------------------------------

今天温习了学过的知识,将十进制转二进制的代码做出来了,如有不对请各位大神指出

System.out.print("请输入一个十进制数字:");

Scanner sc=new Scanner(System.in);

int a=sc.nextInt();

int l=0;//l为除了几次

int b[]=new int[32];

while(a>0)

{

a/=2;

b[31-l]=a%2;

l++;

}

System.out.println("转化的二进制数字为:");

for (int i = 0; i < b.length; i++)

{

System.out.print(b[i]);

if ((i+1)%8==0)

{

System.out.print(" ");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值