关于二进制和十进制在java中的转化问题:
如下算法代码:
public class Solution { // you need treat n as an unsigned value public int reverseBits(int n) { int count= 0; int res=0; while (count<32){ res<<=1; if( (n&1) == 1 ) res=res+1; n>>=1; count++; } return res; } }
在测试算法时候,
输入:
00000010100101000001111010011100
输出:
964176192 (00111001011110000010100101000000)
我这里不太懂,算法本身定义 n和res都是int类型。
那么为什么输入一个int类型的n,这里会把识别做二进制,而不是十进制呢?
输出也是同样的问题,这里输出值res也定义为int,括号外输出的是10进制,括号内则给出类对应的二进制。
所以这里不太懂,java底层是如何识别输入的int数值应该是十进制还是二进制的。谢谢
为什么那个方法没有出现在user类里面,另外一个又在里面?
debug的时候它只运行完System.out.println("偶数的和"+sum1);直接就运行System.out.println("奇数的和"+sum2);
没有运行
while(i<50){ sum2+=2*i+1; i++; }
不知道为什么不运行
请请请请问为什么加1?骰子不是六个面么?
老师,login()函数有啥意义,是循环吗
我下载好后,桌面上找不到这个软件。下好几回都是。在自带的商店里下的jdk。下完桌面也没有。如果在商店里点开始,点完直接闪退,为啥啊。
苹果电脑怎么进行path设置啊。。。 有没有苹果电脑的相关视频啊。 这我根本看不懂。。
这个welcome大小写不一样为什么不报错
老师,创捷窗口代码完了后运行,没有弹出应该弹出的窗口,launchFrame灰色的
{ ([] args) { =()(.()*+); =()(.()*+); =()(.()*+); = ++; ..println(+); ..println(+); ..println(+); (>=){ ..println(); } (>=&&<){ ..println(); } (<){ ..println(); } ..println(+); } }
public class User2 { int id; // id String name; // 账户名 static String company = "北京尚学堂"; // 公司名称 public User2(int id, String name) { this.id = id; this.name = name; } public static void printCompany() { System.out.println(company); } public static void main(String[] args) { User2 u = new User2(101, "高小七"); User2.printCompany(); User2.company = "北京阿里爷爷"; User2.printCompany(); //printCompany();//也可以直接调用静态方法 } }
问题:为何company常量被static修饰后还能再次被修改
老师,我想问一下除了使用for循环和进行单个输出,还有其它的简便方法能够遍历二维数组吗
为什么这节课的音质特别差呢?和别的课比特别不清楚 要把音量放大很多才能稍微听清 而且有杂音
想在练习里试一下,结果报错了,请问一下老师为什么
/** * * 薪水计算器 * (1)通过键盘输入用户的月薪,每年是几个月薪水。 * (2)输出用户的年薪; * (3)输出一行字”如果年薪超过10万,恭喜你超越90%的中国人“; * (4)直到键盘输入数字88,则退出程序; * (5)键盘输入66,计算下一个用户。 */ import java.util.Scanner; public class SalaryCalculator { public static void main(String[] args) { Scanner s =new Scanner((System.in)); System.out.println("**********我的薪水计数器*******"); System.out.println("1.输入88,退出程序\n2.输入66,计算下一个年薪"); while(true){ System.out.println("请输入月薪:"); int monthSalary=s.nextInt(); System.out.println("请输入一年几个月薪资:"); int months=s.nextInt(); int yearSalary=monthSalary*months;//年薪 System.out.println("年薪是:"+yearSalary); if (yearSalary>=20000){ System.out.println("恭喜你超越98%的国人"); }else if (yearSalary>=10000){ System.out.println("恭喜你超越90%的国人"); } System.out.println("输入88,系统退出;输入66,继续计算。"); int comm=s.nextInt(); if (comm==88){ System.out.println("系统退出"); break; } if (comm==66){ System.out.println("继续计算下一个薪资"); continue; } } } }
为什么输入11,22,5,3都会继续计算下一个薪资
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637