import java.util.Scanner;
public class SystemTransform1 {
//二进制转换为十进制
public int binarayTodecimal(int a[]) {
int result=0;
int i;
//计算数值位的值
for(i=1;i<a.length;i++) {
result+=a[i]*(int)Math.scalb(1,a.length-i-1);
}
//处理符号位
if(a[0]==1)
return (-1)*result;
else
return result;
}
//十进制转换为二进制
public int[] decimalTobinaray(int k) {
int i=7;
int[] a=new int[16];
if(k<0) {
k=Math.abs(k);
a[0]=1;
}
while(k!=0) {
a[i--]=k%2;
k=k/2;
}
return a;
}
public static void main(String[] args) {
int n,k;
int[] a=new int[8];
SystemTransform1 s1=new SystemTransform1();
Scanner input=new Scanner(System.in);
System.out.println("请输入选项:\n");
System.out.println("1:二进制转换十进制\n");
System.out.println("2:十进制转换二进制\n");
n=input.nextInt();
if(n==1) {
System.out.println("请输入八位二进制数\n");
for(int i=0;i<8;i++)
a[i]=input.nextInt();
System.out.println("十进制表示为:"+s1.binarayTodecimal(a));
}
if(n==2) {
System.out.println("请输入十进制数\n");
k=input.nextInt();
a=s1.decimalTobinaray(k);
System.out.println("二进制表示为:\n");
for(int i=0;i<8;i++)
System.out.print(a[i]);
}
input.close();
}
}