愿你 发表于 2018-9-6 19:38:33

关于java的几个小问题~求各位帮忙解答解答呀


long l=12463l;
float f=35.67f;
那么l*f=?
答案是444555,2;为什么不是444555.21,为什么这里只保留一位小数?


-24>>>1=???

-24的补码为11101000,那么右移一位后用0补充那么不应该是01110100吗,那么这个对应的十进制不是116吗 为什么正确答案为2147483636


在用eclipse写程序代码时 项目名默认与工程名一致吗?(因为我在建立项目的时候,只要求填写项目名,然后创建好之后 它就跳出来包名了,和工程名是一致的,那么在建立项目的时候是否能自定义包名?)


{:10_297:} {:10_281:}

claws0n 发表于 2018-9-6 19:57:08

1. long 比 float 大,类型当然转大,问题是你输出的时候是怎样被格式化的?
2. int,第一个是正负号,不是直接移的,要取反。
3. 基本上是一样的名字。自定义包名(不知道)

愿你 发表于 2018-9-6 21:18:29

claws0n 发表于 2018-9-6 19:57
1. long 比 float 大,类型当然转大,问题是你输出的时候是怎样被格式化的?
2. int,第一个是正负号,不 ...

1、我就按照那样定义 然后计算结果 它得出的值就只有一位小数呀{:10_243:}
2、不是用补码进行移位吗 然后再求其原码怎么算也不会得到那么大的书呀{:10_316:}

claws0n 发表于 2018-9-6 23:24:38

愿你 发表于 2018-9-6 21:18
1、我就按照那样定义 然后计算结果 它得出的值就只有一位小数呀
2、不是用补码进行移位吗 然 ...

1. 输出的时候被格式化了吧
2. 看了一下,右移应该可以得到 -12 的。你那个量是 max int - 1,溢出了

springrs 发表于 2018-9-8 17:26:16

本帖最后由 springrs 于 2018-9-8 17:27 编辑

第一个问题,精度损失,浮点数都是近似值,你换成double试试
第二个问题-24的补码是111111111111111101000,整数是32位的,顺便说一句,你研究java学位运算干嘛,又用不上
第三个问题,可以建立项目的时候不会给你建package,你在建立class的时候可以改包名

愿你 发表于 2018-9-9 21:04:29

springrs 发表于 2018-9-8 17:26
第一个问题,精度损失,浮点数都是近似值,你换成double试试
第二个问题-24的补码是111111111111111101000,整 ...

就是上课讲到了 然后有点不明吧
现在清楚啦 谢谢~{:10_297:}
页: [1]
查看完整版本: 关于java的几个小问题~求各位帮忙解答解答呀