十进制转化为二进制,八进制,十六进制

来源:互联网 发布:手机淘宝店铺招牌图片 编辑:程序博客网 时间:2024/06/05 08:30

十进制转化为二进制,八进制,十六进制,不管输入的是正数还是负数,都行。

其代码如下:

public class Demo15 {public static void main(String[] args){toBin(80);        //十进制-->二进制System.out.println();toBin(-80);        //十进制-->二进制System.out.println();toBa(80);         //十进制-->八进制System.out.println();toBa(-80);         //十进制-->八进制System.out.println();toHex(80);        //十进制-->十六进制System.out.println();toHex(-80);        //十进制-->十六进制}/* * 十进制-->二进制 */public static void toBin(int num){trans(num,1,1);}/* * 十进制-->八进制 */public static void toBa(int num){trans(num,7,3);}/* * 十进制-->十六进制 */public static void toHex(int num){trans(num, 15, 4);}public static void trans(int num,int base,int offset){//num指的是要传进的十进制数,base是指如果是二进制,base=1,八进制:base=7,十六进制:base=15;//offset是指要右移的位数,如果是二进制,offset=1,八进制:offset=3,十六进制:offset=4if(num==0){System.out.println(0);return ;}char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[] arr=new char[32];int pos=arr.length;while(num!=0){int temp=num & base;arr[--pos]=chs[temp];num=num>>>offset;}for(int x=pos;x<arr.length;x++){System.out.print(arr[x]);}}}

输出结果为:

1010000
11111111111111111111111110110000
120
37777777660
50
FFFFFFB0

阅读全文
0 0
原创粉丝点击