java中>> 和 >>>的区别,为什么没有<<<
“有符号”右移位操作符(>>)和“无符号”右移位操作符(>>>)的区别;为什么没有(<<<)...
“有符号”右移位操作符(>> )和“无符号”右移位操作符(>>> )的区别;为什么没有(<<<)
展开
6个回答
展开全部
一、>> 和 >>>的区别就是有无符号的区别:
右移运算符>>(有符号)
用来将一个数的各二进制位全部右移若干位.例如:a = a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值。如:a = 00110111,则a>>2=00001101,b=11010011,则b>>2 = 11110100。
无符号右移运算符>>>
用来将一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0,如a = 00110111,则a>>>2 = 00001101,b=11010011,则b>>>2 = 00110100。
二、没有<<<符号没有理由,Java的编写规则就是这样定的,
扩展资料:
在windows下编译java文件、执行:
1、先创建一个txt,更改为test.java。
2、编写代码,为输出为holloword。
3、找到cmd,并进行打开cmd。
4、编译java文件,输入命令为javac test.java。
5、如果没有报错,查看当前目录下是否有class文件产生。
6、执行class文件,在命令输入java test,输出为holloword。
展开全部
1.区别
右移有两种:
右移运算符>>(有符号)
用来将一个数的各二进制位全部右移若干位.例如:a = a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值.
如:a = 00110111,则a>>2=00001101,b=11010011,则b>>2 = 11110100
右移一位相当于除2 取商,而且用右移实现除法比除法运算速度要快
无符号右移运算符>>>
用来将一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0,如a = 00110111,则a>>>2 = 00001101,b=11010011,则b>>>2 = 00110100
2.为什么没有(<<<) 这个问题相当于JAVA为什么不叫JAVAAAA
这是人家规定的,没有为什么。如果非要问为什么 ,下面的理由是最解释得通的。因为左移绝不可能出现符号问题,所以不需要带不带符号。只取原来符号就行。
3.这种位运算我可以向你保证,除了考试会用到之外,以后绝不会遇到。公司如果出这种题来面试的话,我劝你那家公司你就别去了。去考一些永远不用的东西。所以我的建议是你把精力花在JAVA的主要方面。你应该是初学 。主要是语法,OOP方面要先掌握起来
右移有两种:
右移运算符>>(有符号)
用来将一个数的各二进制位全部右移若干位.例如:a = a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值.
如:a = 00110111,则a>>2=00001101,b=11010011,则b>>2 = 11110100
右移一位相当于除2 取商,而且用右移实现除法比除法运算速度要快
无符号右移运算符>>>
用来将一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0,如a = 00110111,则a>>>2 = 00001101,b=11010011,则b>>>2 = 00110100
2.为什么没有(<<<) 这个问题相当于JAVA为什么不叫JAVAAAA
这是人家规定的,没有为什么。如果非要问为什么 ,下面的理由是最解释得通的。因为左移绝不可能出现符号问题,所以不需要带不带符号。只取原来符号就行。
3.这种位运算我可以向你保证,除了考试会用到之外,以后绝不会遇到。公司如果出这种题来面试的话,我劝你那家公司你就别去了。去考一些永远不用的东西。所以我的建议是你把精力花在JAVA的主要方面。你应该是初学 。主要是语法,OOP方面要先掌握起来
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你明白什么是“有符号”和“无符号”吗?
首先你要明白为什么要有“>>”和“>>>”之分?
Java 中一个有符号 int 类型的数是 32 位,他可以表示的范围是 -2^31 ~ 2^31-1 之间。那么如何表示负数?左边以 1 开始就是负的。
这就导致了移位操作符有“有符号”和“无符号”之分。这中区分仅存在于右移的时候。因为需要指明右移以后左边流出的空白以 0 还是 1 补,即移位以后的数是正是负?
--------------------------------------------------------
另:这种基础知识还是要掌握的。越早掌握越好。不要说永远用不到,跟计算机打交道,这种原理性的东西,哪有用不到的?就算真用不到,这也是应该学习了解的,不管学哪方面的计算机知识,这都是基础,要是不了解,枉学了计算机。
首先你要明白为什么要有“>>”和“>>>”之分?
Java 中一个有符号 int 类型的数是 32 位,他可以表示的范围是 -2^31 ~ 2^31-1 之间。那么如何表示负数?左边以 1 开始就是负的。
这就导致了移位操作符有“有符号”和“无符号”之分。这中区分仅存在于右移的时候。因为需要指明右移以后左边流出的空白以 0 还是 1 补,即移位以后的数是正是负?
--------------------------------------------------------
另:这种基础知识还是要掌握的。越早掌握越好。不要说永远用不到,跟计算机打交道,这种原理性的东西,哪有用不到的?就算真用不到,这也是应该学习了解的,不管学哪方面的计算机知识,这都是基础,要是不了解,枉学了计算机。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
左移和右移么。我都工作两年了,从来没遇到过。就上学的时候 有时候会考。支持一楼。学习是要分主次的。不要胡子眉毛一把抓,先要把主的东西学好。次的东西等基础打下来打扎实了,等用到再去学。什么都学效果不会好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<<:左移运算符,num << 1,相当于乘以2
>>:右移运算符,num >> 1,移一位相当于除2取商
右移后,正数补0,负数补1。
>>>:无符号右移,忽略符号位,空位都以0补齐
>>:右移运算符,num >> 1,移一位相当于除2取商
右移后,正数补0,负数补1。
>>>:无符号右移,忽略符号位,空位都以0补齐
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询