
java几个简单问题 20
publicclassf{publicstaticvoidmain(String[]args){inta=0100;System.out.print(a);}}结果64?...
public class f
{
public static void main(String[] args)
{
int a=0100;
System.out.print(a);
}
}
结果64?为什么? 说清楚些。以前我提问别人说是8进制。2进制我会算,8进制和2进制的算法一样吗?例如 10用8进制表示 12。是吗?
public class tt
{
public static void main(String[] args)
{
for(int i=1;i<1000;i++)
{
String text=new Integer(i).toString();
int x=new Integer(text.substring(text.length()-1, text.length()));
if(i%7==0 || x==7)
{
System.out.print(i+" ");
}
}
}
}
String text=new Integer(i).toString();
int x=new Integer(text.substring(text.length()-1, text.length()));
上面这两句是什么意思?说清楚简单些。为什么要用String类转int类?直接用int不好吗?这样写有什么好处? 展开
{
public static void main(String[] args)
{
int a=0100;
System.out.print(a);
}
}
结果64?为什么? 说清楚些。以前我提问别人说是8进制。2进制我会算,8进制和2进制的算法一样吗?例如 10用8进制表示 12。是吗?
public class tt
{
public static void main(String[] args)
{
for(int i=1;i<1000;i++)
{
String text=new Integer(i).toString();
int x=new Integer(text.substring(text.length()-1, text.length()));
if(i%7==0 || x==7)
{
System.out.print(i+" ");
}
}
}
}
String text=new Integer(i).toString();
int x=new Integer(text.substring(text.length()-1, text.length()));
上面这两句是什么意思?说清楚简单些。为什么要用String类转int类?直接用int不好吗?这样写有什么好处? 展开
展开全部
关于第一个问题,是八进制,八进制就是以0开头的,八进制转换成十进制要以二进制为桥梁,也就是说先转换成二进制,八进制转换成二进制的方法是每一八进制位拆分成三个二进制位,上面的八进制是100,拆分成二进制就是001 000 000,然后结果就是十进制的64.
第二个问题,首先你要搞清楚这个程序是干什么的,这个程序是输出1-999之间的数中能被7整除或者个位是7的数,那么肯定要得到能被7整除的数和个位是7的数,能被7整除的数比较容易得到,直接对7求余,等于0的就是能被7整除的,那么个位是7的怎么得到呢?这里是先把int装换成字符串,再用字符串截取方法获得最后一位数,再转换成整数,再来判断该整数是否等于7,总结一下:先把数字转换成字符串是为了获得这个数的个位,再转换成整数,是为了判断这个整数是否等于7.其实把这个方法理顺了,你就清楚了
第二个问题,首先你要搞清楚这个程序是干什么的,这个程序是输出1-999之间的数中能被7整除或者个位是7的数,那么肯定要得到能被7整除的数和个位是7的数,能被7整除的数比较容易得到,直接对7求余,等于0的就是能被7整除的,那么个位是7的怎么得到呢?这里是先把int装换成字符串,再用字符串截取方法获得最后一位数,再转换成整数,再来判断该整数是否等于7,总结一下:先把数字转换成字符串是为了获得这个数的个位,再转换成整数,是为了判断这个整数是否等于7.其实把这个方法理顺了,你就清楚了
追问
“八进制转换成十进制要以二进制为桥梁”这里不是要转8进制吗?为什么要用到2进制先?又为什么最后要用10进制? 还有,上面的八进制是100,拆分成二进制就是001 000 000,然后结果就是十进制的64. 。这个能说详细点吗? 001 000 000 怎么算才等于 64?
追答
因为八进制直接转十进制不方便,而八进制转换成二进制比方便,二进制转换成十进制也方便,所以先要转换成二进制,至于为什么要转换成十进制...大哥,你不是问为什么等于64吗?64就是十进制的啊。。。。你上面说二进制你会算的,好吧...这个还真不好表达,你看001 000 000中的1在什么位置,是不是在第7位上,那么它的值就是2的(7-1)次方,也就是2的6次方,就等于64,再举些简单的例子,比如001,这个1在第1个位置上,那么它的值就是2的(1-1)次方,就是2的0次方,就等于1,再比如110,这里有两个1,一个在第二个位置上,一个在第三个位置上,那么就是2的2次方+2的1次方,结果就是6,好好体会一下,多看看书吧
展开全部
0100输出成64,:因为0在最高位,代表8进制,0100转化成10进制就是0*1+0*8+1*8*8=64
String text=new Integer(i).toString();
int x=new Integer(text.substring(text.length()-1, text.length()));
是把1到1000的数变成字符串之后取最后一位,再进行判断,如果最后一位是7,则输出,所以第二个程序是输出1到1000个位数是7的所有数字
String text=new Integer(i).toString();
int x=new Integer(text.substring(text.length()-1, text.length()));
是把1到1000的数变成字符串之后取最后一位,再进行判断,如果最后一位是7,则输出,所以第二个程序是输出1到1000个位数是7的所有数字
追问
为什么要用到2进制先?又为什么最后要用10进制?
追答
你这个没有用到二进制,输出的时候,JVM直接把8进制数值转换成10进制进行输出的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个是64,因为8进制要以0打头...第二个是 int类型 +""也可以,因为java可以自动装箱,int-->Integer,上面那种写法性能貌似稍微好点,不过这里写区别不大,第二句话,substring()是截取字符串,从text.length()-1, text.length()也就是最后一个,换句话就是只留个位.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个问题别人已经回答得很清楚了~
至于第二个问题,我估计就是写程序的人测试一下int和string的相互转换,根本没有任何关系,这两句话创建了两个局部变量,text 和x,跟程序的前后部分都没有任何关系,下面判断和输出用的还是int类型的i,所以 不要纠结人家随心写的这两句话了...
至于第二个问题,我估计就是写程序的人测试一下int和string的相互转换,根本没有任何关系,这两句话创建了两个局部变量,text 和x,跟程序的前后部分都没有任何关系,下面判断和输出用的还是int类型的i,所以 不要纠结人家随心写的这两句话了...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、int a=0100;
以0开头的整数表示的8进制,0100 =64
10用8进制表示 12 可以算正确,在写码时,记得开头加0。012 = 10
2、完全扯淡的方法,完全可以用int 写,一样能够实现
if (i % 7 == 0 || i%10 == 7)
以0开头的整数表示的8进制,0100 =64
10用8进制表示 12 可以算正确,在写码时,记得开头加0。012 = 10
2、完全扯淡的方法,完全可以用int 写,一样能够实现
if (i % 7 == 0 || i%10 == 7)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询