以二进制形式输出一个十进制数利用for循环和移位以及&运算

以二进制形式输出一个十进制数利用for循环和移位以及&运算:

& 和 >> 的计算方式想必大家都知道,>> 相当于将数进行 /2 运算,&,1&1=1,0&*=0;

不多说,直接上代码:

package com.cyx.ex1;
  2 import java.util.Scanner;
  3 
  4 public class Change{
  5         public static void main(String[] args){
  6                 System.out.print("请输入一个整数:");
  7                 Scanner scan=new Scanner(System.in);
  8                 while(scan.hasNext()){
  9                 int num=scan.nextInt();
 10                 System.out.println("输入值:"+num);
 11                 System.out.println(num+"的二进制为:"+toBinary(num));
 12                 System.exit(0);
 13                 }
 14         }
16 
 17         public static String toBinary(int num){
 18                 String binary="";
 19                 if(num==0){
 20                 return "0";
 21                 }
 22                 for(int n=num;n>0;n/=2){
 23                 //将输入值与1进行与运算
 24                 //比如4的二进制数为:0100
 25                 //与1(0001与运算后得到 0
 26                 //将4(0100)向右位移四次并且与1与运算后得到0010
 27                 int bit = num&1;
 28                 binary = binary+bit;
 29                 num = num >>1;
 30                 }
 31                 //最后将得到的字符串binary=0010倒序输出即可
 32                 return new StringBuffer(binary).reverse().toString();
 33         }
 34 
 35 }

结果展示:
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值