全球旧事资料 分类
型的包装类型也是可以的。显然,lo
g和Stri
g类型都不符合switch的语法规定,并且不能被隐式转换成i
t类型,所以,它们不能作用于swtich语句中。
6、shorts11s1s11有什么错shorts11s11有什么错
对于shorts11s1s11由于s11运算时会自动提升表达式的类型,所以结果是i
t型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。对于shorts11s11由于是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。
f7、char型变量中能不能存贮一个中文汉字为什么
char型变量是用来存储U
icode编码的字符的,u
icode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在u
icode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:u
icode编码占用两个字节,所以,char类型的变量也是占用两个字节。备注:后面一部分回答虽然不是在正面回答题目,但是,为了展现自己的学识和表现自己对问题理解的透彻深入,可以回答一些相关的知识,做到知无不言,言无不尽。
8、用最有效率的方法算出2乘以8等於几
左移2位
9、请设计一个一百亿的计算器
首先要明白这道题目的考查点是什么,一是大家首先要对计算机原理的底层细节要清楚、要知道加减法的位运算原理和知道计算机中的算术运算会发生越界的情况,二是要具备一定的面向对象的设计思想。首先,计算机中用固定数量的几个字节来存储的数值,所以计算机中能够表示的数值是有一定的范围的,为了便于讲解和理解,我们先以byte类型的整数为例,它用1个字节进行存储,表示的最大数值范围为128到127。1在内存中对应的二进制数据为11111111,如果两个1相加,不考虑Java运算时的类型提升,运算后会产生进位,二进制结果为111111110,由于进位后超过了byte类型的存储空间,所以进位部分被舍弃,即最终的结果为11111110,也就是2,这正好利用溢位的方式实现了负数的运算。128在内存中对应的二进制数据为10000000,如果两个128相加,不考虑Java运算时的类型提升,运算后会产生进位,二进制结果为100000000,由于进位后超过了byte类型的存储空间,所以进位部分被舍弃,即最终的结果为00000000,也就是0,这样的结果显然不是我们期望的,这说明计算机中的算术运算是会发生越界情况的,两个数值的运算结果不能超过计算机中的该类型的数值范围。由于Java中涉及表达式运算时的类型自动提升,我们无法用byte类型r
好听全球资料 返回顶部