java中>> 和 >>>的区别,为什么没有<<<

“有符号”右移位操作符(>> )和“无符号”右移位操作符(>>> )的区别;为什么没有(<<<)

一、>> 和 >>>的区别就是有无符号的区别:

右移运算符>>(有符号)

用来将一个数的各二进制位全部右移若干位.例如: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个回答  推荐于2017-09-25
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方面要先掌握起来本回答被提问者采纳
第2个回答  2010-03-16
你明白什么是“有符号”和“无符号”吗?

首先你要明白为什么要有“>>”和“>>>”之分?

Java 中一个有符号 int 类型的数是 32 位,他可以表示的范围是 -2^31 ~ 2^31-1 之间。那么如何表示负数?左边以 1 开始就是负的。

这就导致了移位操作符有“有符号”和“无符号”之分。这中区分仅存在于右移的时候。因为需要指明右移以后左边流出的空白以 0 还是 1 补,即移位以后的数是正是负?

--------------------------------------------------------
另:这种基础知识还是要掌握的。越早掌握越好。不要说永远用不到,跟计算机打交道,这种原理性的东西,哪有用不到的?就算真用不到,这也是应该学习了解的,不管学哪方面的计算机知识,这都是基础,要是不了解,枉学了计算机。
第3个回答  2010-03-17
左移和右移么。我都工作两年了,从来没遇到过。就上学的时候 有时候会考。支持一楼。学习是要分主次的。不要胡子眉毛一把抓,先要把主的东西学好。次的东西等基础打下来打扎实了,等用到再去学。什么都学效果不会好
第4个回答  2018-10-24
<<:左移运算符,num << 1,相当于乘以2
>>:右移运算符,num >> 1,移一位相当于除2取商
右移后,正数补0,负数补1。
>>>:无符号右移,忽略符号位,空位都以0补齐

java中>> 和 >>>的区别,为什么没有<<<
二、没有<<<符号没有理由,Java的编写规则就是这样定的,

Java 中“>>”和“>>>”有什么区别?
Java中的位运算符:>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。表达式为:result = exp1 >> exp2;result = exp2 >>> exp2;表示把数exp1向右移动exp2位。例如:r...

运算符>>和>>>有什么区别
两者只有一个区别,即作用不同。1、>> 表示右移,如果该数为正,则高位补0,若为负数,则高位补1。如:int i=15; i>>2的结果是3,移出的部分将被抛弃。转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3)。java中...

java里面“>>”与“>>>”区别是什么???
>>带符号 >>>不带符号。>> 移完后正数还是正数,负数还是负数,正数在符号位补0,负数补1 >>>符号位恒补0.对于负数来说,有可能变成正数了

java中>和>>的区别?
“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C或C++没有的。举例:4 >> 2 4\/(2*2) = 1 ...

java中>>>是什么意思?
在Java中>、>>、>>>三者的区别 在java中:>表示大于,如:if(a>b)...结果是boolean类型 >>表示右移,如:int i=15;i>>2的结果是3,移出的部分将被抛弃。转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3)。>>...

java中的>>>和>>>=是什么意思
“>>>”运算符所作的是无符号的位移处理,它不会将所处理的值的最高位视为正负符号,所以作位移处理时,会直接在空出的高位填入0。当我们要作位移的原始值并非代表数值时(例如:表示颜色图素的值,最高位并非正负号),可能就会需要使用此种无符号的位移。比如:-10>>>2=1073741821 -10=1111 ...

在java中,<<和<<<有什么区别
好像只有>>,>>>,<< >>(右移,右移一位等于除2),<<(左移,左移一位等于乘2),>>>(无符号右移)

Java ,a>>>b 与a>>b 有什么区别吗?
>>>是无符号右移,这跟>>不同 比如,-14 >>> 2:-14(即二进制的 11111111 11111111 11111111 11110010),右移两位后等于 1073741820(即二进制的 00111111 11111111 11111111 11111100)。此时完全不考虑符号了,连通符号位一起右移了。而>>是不右移符号位的 ...

java 中右移>>和逻辑右移>>的左操作数怎么运算的
(byte) 0xa2 由于byte的最大值是127,所以byte162要取模,结果是-94,对应的二进制是:11111111111111111111111110100010 11111111111111111111111110100010 >> 2 = 11111111111111111111111111101000,即十进制-24 >>和>>>的区别是:>> 带符号右移,高位补充符号,正0负1 >>>不带符号右移,高位补充正0 有上面的...

相似回答