二进制转换代码

时间:2022-10-06 16:42:05 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

import java.util.Scanner; //我

public class ErJinZhi {

public static void main (String[] args) {

//使用键盘从外界输入数字

System.out.println("请输入一个整数:");

Scanner sc=new Scanner (System.in);

int n=sc.nextInt();

int shuZu[]=new int[32];//建立数组来单个存储二进制码

//判断为零或正数时

if(n>=0){

for(int i=31;i>=0;i--) {

shuZu[i]=n%2; //取余

int m=(int) n/2; //取整

n=m;

//n<1时结束循环

}

/**n<0时,先对n取相反数,因为我要从其绝对值

的二进制码来求负数的二进制码,前面部分和

求正数的二进制码一致*/

}else if(n<0){

int h=-n; //取相反数

for(int i=31;i>=0;i--)

{

shuZu[i]=h%2;

int m=(int) h/2;

h=m;

}

//对二进制码取反

for(int k=0;k<=31;k++) {

if(shuZu[k]>=1)

shuZu[k]=0;

else shuZu[k]=1;

}

//取反后的二进制上加1

for(int t=31;t>=0;t--) {

shuZu[t]=shuZu[t]+1;

if(t<=0)break; //t=0时跳出循环,因为t-1没有意思了

else{

if(shuZu[t]<2)break;

else {

shuZu[t]=0;

shuZu[t-1]=shuZu[t-1]+1;//逢2进1

}

break;

}

}

}

System.out.println("按数组形式循环输出该数的二进制码:");

for(int p=0;p<=31;p++)

System.out.print(" "+shuZu[p]);

//将shuZu数组连接在一起组成一个字符串类型,然后输出

String s="";

for(int u=0;u<=31;u++)

s+=shuZu[u];

System.out.println(" ");

System.out.println("以字符串的形式输出二进制码:");

System.out.println(s);

}

}

本文来源:https://www.wddqw.com/doc/78c007a9d7d8d15abe23482fb4daa58da0111cbd.html