1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2、在计算机中,负数以其正值的补码形式表达。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
补码:反码加1称为补码。
public class Demo13 {
public static void main(String[] args){
toBin(6);
toBin_2(-6);
}
/*
* 十进制转换为二进制
*/
public static void toBin(int num){ //这个二进制的转换只针对正数
StringBuffer sb=new StringBuffer();
/*public StringBuffer reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.reverse();
经过反转以后,对象sb中的内容将变为”cba”。
*/
while(num>0){
sb.append(num%2);
num=num/2;
}
System.out.println(sb.reverse());
}
public static void toBin_2(int num){ //这个二进制的转换正数、负数都可以
//定义二进制的表
char[] chs={'0','1'};
//定义一个临时存储容器;
char[] arr=new char[32];
//定义一个操作数组的指针
int pos=arr.length;
while(num!=0){
int temp=num & 1;
arr[--pos]=chs[temp];
num=num>>>1;
}
for(int x=pos;x<arr.length;x++){
System.out.print(arr[x]);
}
}
}
结果为:
110
11111111111111111111111111111010