淘宝网网站建设目的,迁安建设局网站,此网站三天换一次域名,重庆好的seo平台十进制转其他进制
因为在java中位运算符是直接对数值的二进制数进行操作的 并且 写的是二进制数在输出和操作时是以十进制数的形式#xff1b; 所以十进制转二#xff0c;八#xff0c;十六进制#xff1b;就已经实现了二进制#xff0c;八进制#xff0c;十进制#x…十进制转其他进制
因为在java中位运算符是直接对数值的二进制数进行操作的 并且 写的是二进制数在输出和操作时是以十进制数的形式 所以十进制转二八十六进制就已经实现了二进制八进制十进制十六进制的相互转换。 1十进制转其他进制其他进制的互相转换使用这三种方式 2其他进制转十进制直接使用int、long即可 使用java API实现 十进制转二进制Integer.toBinaryString(); 十进制转八进制Integer.toOctalString(); 十进制转十六进制Integer.tohexString(); class BaseSystemDemo1 {public static void main(String[] args) {//十进制转其他进制//1.使用java API实现//十进制转二进制int num80;String BinStrInteger.toBinaryString(num);//十进制转八进制String OctStrInteger.toOctalString(num);//十进制转十六进制String HexStrInteger.toHexString(num);System.out.println(BinStr);//1010000System.out.println(OctStr);//120System.out.println(HexStr);//50}
}
使用除基倒取余法实现
十进制转二进制 一个十进制数n每次用n除以2把余数记下来再用商去除以2…依次循环直到商为0结束把余数倒着依次排列就构成了转换后的二进制数 代码1使用int类型 //十进制转二进制//1.方法1除基倒取余法//1_1:使用int类型/*一个十进制数n每次用n除以2把余数记下来再用商去除以2...依次循环直到商为0结束把余数倒着依次排列就构成了转换后的二进制数*/int num80;int r0;//余数int t0;//位数int bin0;//最后的二进制数while(num!0){rnum%2;num/2;binr*(int)(Math.pow(10,t));//每次求余后把余数存储在int型数的低位依次递增t;//位数加1}System.out.println(bin);//1010000
代码2使用String类型 //1_2:使用String类型int number80;String strBin;while(number!0){// 0 0 // 00 0 0//...//1000 1 0000//number%2在strBin的前面就是每次把新的余数放在字符串的首部即实现了逆序余数strBinnumber%2strBin;number/2;}System.out.println(strBin);//1010000
十进制转八进制
代码1使用int类型 //十进制转八进制//方法1除基倒余法//1_1:使用int类型int num80;int r0;//余数int t0;//位数int oct0;//最后的八进制数while(num!0){rnum%8;num/8;octr*(int)(Math.pow(10,t));t;}System.out.println(oct);//120代码2使用String类型
//1-2使用String类型int num180;String str;while(num1!0){strnum1%8str;num1/8;}System.out.println(str);//120十进制转十六进制
因为十六进制是0-9A-F所以只能使用String存储 代码 //十进制转十六进制//方法1除基倒余法//1:使用String类型int num2842;String hexStr;int n0;while(num2!0){nnum2%16; //注意加上,防止进行数值运算hexStr((n9)?(char)(n-10A):n)hexStr;num2/16;}System.out.println(hexStr);//34A使用位运算符(按位与)与(右移)实现
十进制转二进制 n1 :无符号右移,获取n的二进制的下一位 n1按位与,刚好能够得到n的二进制的最低位 再逐一输出即可 假设一共32位减1(最后的一位不需要移动本身就有1位数在最低位所以-1)再每次移动减少1位 代码1直接输出 //方法2位运算与//2_1:直接输出int n80;//从最高位开始移动直到最低位for(int i 31;i 0; i--){/*n1 :无符号右移,获取n的二进制的下一位n1按位与,刚好能够得到n的二进制的最低位再逐一输出即可*/System.out.print(n i 1);//00000000000000000000000001010000}System.out.println();代码2使用String类型 //2_2:使用StringString str;int m80;for(int i31;i0;i--){str(mi1);}System.out.println(str);//00000000000000000000000001010000十进制转八进制 假设一共32位减2(最后的三位不需要移动但每次移动3位最后会需要补充1位数所以只需要-2)再每次移动减少3位 代码1直接输出 //方法2:使用位运算符与//2-1:直接输出int num280;//假设一共8位减2(最后的三位不需要移动但每次移动3位最后会需要补充1位数所以只需要-2)再每次移动减少3位//000 000 000for(int i6;i0;i-3){System.out.print((num2i)7);//120}System.out.println();//假设一共32位减2(最后的三位不需要移动但每次移动3位最后会需要补充1位数所以只需要-2)再每次移动减少3位for(int i30;i0;i-3){System.out.print((num2i)7);//00000000120}System.out.println();代码2使用String类型 //2-2使用String类型int num380;String octStr;for(int i30;i0;i-3){octStr(num2i)7;}System.out.println(octStr);//00000000120十进制转十六进制的演化过程1 1.使用15得到num的最后四位二进制数每四位二进制数为1位十六进制数 2.因为输出时都是以十进制来输出的所以只需要把num3的十进制大于9的转换为A-F并且因为输出的可能是数值也可能是字符使用字符串类型 3.num34获得倒数第二个四位二进制数并重复上述操作 4.连接字符串 代码1
class BaseSystemDemo2 {public static void main(String[] args) {//十进制转其他进制//2.使用位运算符(按位与)与(右移)实现//原理位运算符是直接对数值的二进制形式进行操作的//n1 n7 n15按位与,刚好能够得到n的二进制的最后的位数//n1 n3 n4:右移,获取n的二进制的下一段//十进制转十六进制//1)使用15得到num的最后四位二进制数每四位二进制数为1位十六进制数int num80;int num3num15;//2)因为输出时都是以十进制来输出的所以只需要把num3的十进制大于9的转换为A-F//因为输出的可能是数值也可能是字符使用字符串类型String HexStr1(num39)?(char)(num3-10A):num3;//3)num34获得倒数第二个四位二进制数int num4(num4)15;String HexStr2(num49)?(char)(num4-10A):num4;//4连接两个字符串String HexStrHexStr2HexStr1;System.out.println(HexStr);//50}
}
十进制转十六进制的演化过程2 假设一共32位减4(最后的四位不需要移动所以-4)再每次移动4位 使用三元运算符输出其中大于9的字符(n19)?(char)(n1-10‘A’):n1 代码1直接输出
//方法2使用位运算符和//2-1直接输出int num3842;int n10;//假设一共8位减4(最后的四位不需要移动所以-4)再每次移动4位for(int i4;i0;i-4){n1(num3i)15;System.out.print((n19)?(char)(n1-10A):n1);//4A}System.out.println();//假设一共32位减4(最后的四位不需要移动所以-4)再每次移动4位int n20;for(int i28;i0;i-4){n2(num3i)15;System.out.print((n29)?(char)(n2-10A):n2);//0000034A }System.out.println();代码2使用String
//2-2:使用String类型int num4842;String hexStr1;int n30;for(int i28;i0;i-4){n3(num4i)15;hexStr1(n39)?(char)(n3-10A):n3;}System.out.println(hexStr1);//0000034A