【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《二进制转换代码》,欢迎阅读!
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.wddqxz.cn/78c007a9d7d8d15abe23482fb4daa58da0111cbd.html