黑马程序员技术交流社区

标题: Java语言中关于位“<<”运算的问题,求大神解答 [打印本页]

作者: lby369    时间: 2014-12-12 21:28
标题: Java语言中关于位“<<”运算的问题,求大神解答
“<<”运算时,针对double类型和float类型 是如何运算的??请大神解答下面的式子,或求指出存在的问题,这个问题一直没搞懂。。。
class  Q
{
        public static void main(String[] args)
        {
                double a=126.7f;
                double b=a<<2.0;
                System.out.println(b);
        }
}
作者: 随风sky    时间: 2014-12-12 21:43
坐等大牛解答!
作者: Imp_x    时间: 2014-12-12 21:50
Java的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long、int、short、char和 byte

详情看这 http://blog.csdn.net/mw08091020/article/details/8010300

感谢万能的度娘{:3_67:}
作者: cz萑    时间: 2014-12-12 21:52
本帖最后由 cz萑 于 2014-12-12 21:54 编辑

源代码是编译是失败的,报的错是二次元运算符<<的操作数类型错误,我把a强制转换成int型的时候编译成功了,感觉<<只能对int型的进行操作

OYZ()}CK0KD_]UX0HUIQH0I.jpg (29.35 KB, 下载次数: 8)

OYZ()}CK0KD_]UX0HUIQH0I.jpg

作者: Charay    时间: 2014-12-12 21:56
什么叫二元运算符操作数错误
作者: Jennifer    时间: 2014-12-12 21:58
二元运算符“<<”的操作数类型错误
作者: 武xiao    时间: 2014-12-12 22:13
java 的位运算只能操作整型类,直接传入浮点数的话会先转成整数
作者: missyoyo    时间: 2014-12-12 23:11
武xiao 发表于 2014-12-12 22:13
java 的位运算只能操作整型类,直接传入浮点数的话会先转成整数

没听说过大范围的会自动类型提升为小类型的
作者: missyoyo    时间: 2014-12-12 23:12
<<位移是整形的运算方式,跟浮点就没什么关系
作者: missyoyo    时间: 2014-12-12 23:18
Charay 发表于 2014-12-12 21:56
什么叫二元运算符操作数错误

意思就是浮点根本不能这么运算,就像两个String不能直接判断<,>(大于,小于)一样。
“abc”>“cba”,也会报错。
也跟map要直接用iterator遍历一样,根本没有这个方法嘛
作者: 请叫我丶菜鸟    时间: 2014-12-12 23:40
这个结果为506.8吗?如果不是求详解。。。
作者: 慕容冰若    时间: 2014-12-12 23:54
位运算符只针对整数啊
作者: lby369    时间: 2014-12-13 22:55
Imp_x 发表于 2014-12-12 21:50
Java的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long、int、short、char ...

这个问题困扰了2节课,,问题结果出在概念上了
作者: abathe    时间: 2014-12-14 20:56
看来得巩固基础了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2