问题描述
System.out.println(Integer.toString(60,37));输出结果:1oo是什么意思?是什么符号?谢谢回答!
解决方案
解决方案二:
Returnsastringrepresentationofthefirstargumentintheradixspecifiedbythesecondargument.把60用37进制表示,o就类似于16进制中的A到F吧。
解决方案三:
publicclassSyso{publicstaticvoidmain(String[]args){System.out.println(Integer.toString(60,37));//为毛我的结果是60...}}
Areyou确定?没有别的语句?
解决方案四:
publicclassTestprocess{publicstaticvoidmain(String[]args){Stringss=Integer.toString(60,36);System.out.println("ss:"+ss);}}结果:ss:1o,我看了源码,那个迭代好烦publicstaticStringtoString(inti,intradix){if(radix<Character.MIN_RADIX||radix>Character.MAX_RADIX)radix=10;/*Usethefasterversion*/if(radix==10){returntoString(i);}charbuf[]=newchar[33];booleannegative=(i<0);intcharPos=32;if(!negative){i=-i;}while(i<=-radix){buf[charPos--]=digits[-(i%radix)];i=i/radix;}buf[charPos]=digits[-i];if(negative){buf[--charPos]='-';}returnnewString(buf,charPos,(33-charPos));}上面用到一个一个参数的重载publicstaticStringtoString(inti){if(i==Integer.MIN_VALUE)return"-2147483648";intsize=(i<0)?stringSize(-i)+1:stringSize(i);char[]buf=newchar[size];getChars(i,size,buf);returnnewString(0,size,buf);}returnnewString(0,size,buf);这个就是你要的答案
解决方案五:
我觉得楼主没学过计算机组成原理;十进制转二进制、八进制、十六进制怎么做的?一样的这么做,十进制转36进制怎么做呢?用60除以36得1,余数是24这样0123456789abcdefghijkmno中,o恰表示24所以System.out.println(Integer.toString(60,36));得到1o了我也想问:引用2楼qq_24283135的回复:
publicclassSyso{publicstaticvoidmain(String[]args){System.out.println(Integer.toString(60,37));//为毛我的结果是60...}}Areyou确定?没有别的语句?
解决方案六:
引用3楼YingZiPuRen的回复:
publicclassTestprocess{publicstaticvoidmain(String[]args){Stringss=Integer.toString(60,36);System.out.println("ss:"+ss);}}结果:ss:1o,我看了源码,那个迭代好烦publicstaticStringtoString(inti,intradix){if(radix<Character.MIN_RADIX||radix>Character.MAX_RADIX)radix=10;/*Usethefasterversion*/if(radix==10){returntoString(i);}charbuf[]=newchar[33];booleannegative=(i<0);intcharPos=32;if(!negative){i=-i;}while(i<=-radix){buf[charPos--]=digits[-(i%radix)];i=i/radix;}buf[charPos]=digits[-i];if(negative){buf[--charPos]='-';}returnnewString(buf,charPos,(33-charPos));}上面用到一个一个参数的重载publicstaticStringtoString(inti){if(i==Integer.MIN_VALUE)return"-2147483648";intsize=(i<0)?stringSize(-i)+1:stringSize(i);char[]buf=newchar[size];getChars(i,size,buf);returnnewString(0,size,buf);}returnnewString(0,size,buf);这个就是你要的答案
第一句就说radix小于2或大于36就用10进制表示,明明radix=37,应该是返回60啊;
解决方案七:
这是越界了吧Integer.toString(intpar1,intpar2),par1表示要转成字符串的数字,par2表示要转成的进制表示Integer.toString(60,36)表示把60转成36进制表示的字符串,即10到36之间的数字表示为a到z的表示。但是你是37超了Integer.toString(60,2)转换为2进制表示Integer.toString(60,8)转换为8进制表示Integer.toString(60,10)转换为10进制表示Integer.toString(60,16)转换为16进制表示