关于Java的算术右移运算符 java中逻辑右移">>>"算术右移">>"的区别?

Java\u4e2d\u7684\u4f4d\u79fb\u8fd0\u7b97\u4e2d\u7684>>(\u903b\u8f91\u53f3\u79fb)\u548c>>>(\u7b97\u672f\u53f3\u79fb)\u7684\u533a\u522b\uff1f

\u903b\u8f91\u53f3\u79fb\u662f\u5c06\u5404\u4f4d\u4f9d\u6b21\u53f3\u79fb\u6307\u5b9a\u4f4d\u6570\uff0c\u7136\u540e\u5728\u5de6\u4fa7\u88650,
\u7b97\u672f\u53f3\u79fb\u662f\u5c06\u5404\u4f4d\u4f9d\u6b21\u53f3\u79fb\u6307\u5b9a\u4f4d\u6570\uff0c\u7136\u540e\u5728\u5de6\u4fa7\u7528\u539f\u7b26\u53f7\u4f4d\u8865\u9f50

>>\u53f3\u79fb\u8fd0\u7b97\u7b26\uff0c\u6709\u7b26\u53f7\u3002\u53f3\u8fb9\u8d85\u51fa\u622a\u6389\uff0c\u5de6\u8fb9\u8865\u4e0a\u7b26\u53f7\u4f4d

>>>\u53f3\u79fb\u8fd0\u7b97\u7b26\uff0c\u65e0\u7b26\u53f7\uff0c\u5de6\u8fb9\u88650

\u7b97\u672f\u53f3\u79fb \u987e\u540d\u601d\u4e49 \u7b97\u672f\u561b \u5f53\u7136\u8981\u5e26\u7b26\u53f7\u4e86 \u6240\u4ee5\u8981\u8865\u4e0a\u7b26\u53f7\u4f4d \u8d1f\u7684\u5c31\u586b1 \u6b63\u7684\u5c31\u586b0
\u90a3\u4e2a\u903b\u8f91\u53f3\u79fb \u76f4\u63a5\u8865\u4e0a0\u5c31ok

你说的右移应该是整数除法里面提到的吧。
整数除法总是zero-round,即商总是向靠近0的数方向进行舍入。
因为要向0靠近,所以负数在除2的幂之前会先加上一个偏移量2的k次方减1(2k-1,k为右移的位数)以修正
假设8位有符号表示:
则-5的补码为 1111 1011
右移一位: 1111 1101
上面的结果是-3的补码,和实际不符(-5/2 = -2)
加上修正值: 1111 1011 + 2的一次方减1 = 1111 1011 + 1 = 1111 1100
然后再右移一位:1111 1110 <= -2的补码!

计算机是用补码表示的,用八位补码表示-5是11111011,右移一位是11111101,把这个补码写成原码表示就是10000011,显然,这个数是-3.

-5:11111111 11111111 11111111 11111011
算术(带符号位)右移:
11111111 11111111 11111111 11111101,即为-3
逻辑(不带符号位)右移
01111111 11111111 11111111 11111101,即为2^31 - 2 = 2147483646

另外,
1.
byte, short, int类型在移位时 全按32位算,long按64位算,
例如:byte a = 1; 则(a >> 1)是一个int 类型,
2.
int a = 1; a >> x 相当于a >> (x % 32),
long b = 1; b >> y 相当于a >> (y % 64),
例如:“a >> 32”结果仍是a,而“a = a >> 31; a = a >> 1”结果为0
3.
byte a = 1; a >>= 1;相当于a = (byte)a >> 1;

  • JAVA涓殑鈥>>鈥濆拰鈥>>>鈥杩愮畻绗
    绛旓細1銆>>:鍙崇Щ杩愮畻绗锛宯um >> 1,鐩稿綋浜巒um闄や互2銆傛寜浜岃繘鍒跺舰寮忔妸鎵鏈夌殑鏁板瓧鍚戝彸绉诲姩瀵瑰簲浣嶆暟锛屼綆浣嶇Щ鍑猴紙鑸嶅純锛夛紝楂樹綅鐨勭┖浣嶈ˉ绗﹀彿浣嶏紝鍗虫鏁拌ˉ闆讹紝璐熸暟琛1銆傜鍙蜂綅涓嶅彉銆傚锛-1鍦32浣嶄簩杩涘埗涓〃绀轰负锛11111111 11111111 11111111 11111111 -1>>1锛氭寜浣嶅彸绉伙紝绗﹀彿浣嶄笉鍙橈紝浠嶆棫寰楀埌11111111 11111111 ...
  • 鍏充簬Java鐨勭畻鏈彸绉昏繍绠楃
    绛旓細鍙崇Щ涓浣: 1111 1101 涓婇潰鐨勭粨鏋滄槸-3鐨勮ˉ鐮侊紝鍜屽疄闄呬笉绗︼紙-5/2 = -2)鍔犱笂淇鍊硷細 1111 1011 + 2鐨勪竴娆℃柟鍑1 = 1111 1011 + 1 = 1111 1100 鐒跺悗鍐嶅彸绉讳竴浣嶏細1111 1110 <= -2鐨勮ˉ鐮侊紒
  • java涓閫昏緫鍙崇Щ">>>"绠楁湳鍙崇Щ">>"鐨勫尯鍒?
    绛旓細>>鍙崇Щ杩愮畻绗锛屾湁绗﹀彿銆傚彸杈硅秴鍑烘埅鎺夛紝宸﹁竟琛ヤ笂绗﹀彿浣 >>>鍙崇Щ杩愮畻绗︼紝鏃犵鍙凤紝宸﹁竟琛0 绠楁湳鍙崇Щ 椤惧悕鎬濅箟 绠楁湳鍢 褰撶劧瑕佸甫绗﹀彿浜 鎵浠ヨ琛ヤ笂绗﹀彿浣 璐熺殑灏卞~1 姝g殑灏卞~0 閭d釜閫昏緫鍙崇Щ 鐩存帴琛ヤ笂0灏眔k
  • Java涓殑2<<3鏄粈涔堟剰鎬
    绛旓細杩樻湁涓や釜鐩稿叧鐨绉讳綅杩愮畻绗锛>> 琛ㄧず绠楁湳鍙崇Щ锛岀敤鏉ュ皢涓涓暟鐨勪簩杩涘埗浣嶅簭鍒楀彸绉昏嫢骞蹭綅锛岀Щ鍒板彸绔殑浣庝綅琚垗寮冿紝鏈楂樹綅鍒欑Щ鍏ュ師鏉ラ珮浣嶇殑鍊笺>>> 琛ㄧず閫昏緫鍙崇Щ锛岀敤鏉ュ皢涓涓暟鐨勪簩杩涘埗浣嶆坊闆跺彸绉昏嫢骞蹭綅锛屽嵆鍚戝彸绉诲姩鑻ュ共浣嶏紝绉诲埌鍙崇鐨勪綆浣嶈鑸嶅純锛屾渶楂樹綅娣婚浂銆傚畠涔熷彨鏃犵鍙峰彸绉 ...
  • 姹傛暀java杩愮畻绗︽湁鍏崇殑涓浜涢
    绛旓細绗竴棰橈細涓嶈兘杩愯锛屽湪boolean b = (x=y);杩欒浼氭姤閿欙紝鍥犱负x鏄痠nt绫诲瀷锛岃寉鏄痙ouble绫诲瀷銆傚畠浠袱涓苟涓嶄細鐩哥瓑銆傜浜岄锛绠楁湳杩愮畻锛屽叧绯杩愮畻绗锛岄昏緫杩愮畻绗︼紝浣嶈繍绠楃锛岀涓夐锛>>瀵规簮鐮佽繘琛鍙崇Щ銆傚鏋滄槸璐熸暟锛岀鍙蜂綅涓嶇Щ鍔紝濡傛灉绉诲姩鍑虹殑鏁版槸1鐨勮瘽锛岃鍦ㄧ粨鏋滀腑鍔犱竴銆傚鏋滄槸0锛屽垯涓嶉渶瑕佸姞1.>...
  • java涓殑浣嶆槸浠涔堟剰鎬
    绛旓細鍦↗ava涓嫢鏈変綅杩愮畻绗︼紝鍙互瀵逛綅杩涜甯哥敤鐨勯昏緫鍜绠楁湳杩愮畻锛屾瘮濡傛寜浣嶄笌銆佹寜浣嶆垨銆佹寜浣嶅紓鎴栥佷綅绉荤瓑绛夈Java涓殑浣嶈繍绠楃鍒嗕负涓ょ被锛氶昏緫杩愮畻绗﹀拰浣绉昏繍绠楃銆傚叾涓紝閫昏緫杩愮畻绗﹀寘鎷寜浣嶄笌銆佹寜浣嶆垨銆佹寜浣嶅紓鎴栧拰鍙栧弽锛岃屼綅绉昏繍绠楃鍖呮嫭宸︾Щ鍜鍙崇Щ銆傝繖浜涜繍绠楃鍙互璁㎎ava绋嬪簭鍛樺皢澶嶆潅鐨勪綅鎿嶄綔绠鍖栨垚涓涓...
  • JAVA琛ㄨ揪寮 a >>> 2浠涔堟剰鎬
    绛旓細鍙崇Щ浣锛>>锛屾湁绗﹀彿鐨勭Щ浣鎿嶄綔 鍙崇Щ鎿嶄綔鏄皢杩愮畻鏁扮殑浜岃繘鍒剁爜鏁翠綋鍙崇Щ鎸囧畾浣嶆暟锛屽彸绉讳箣鍚庣殑绌轰綅鐢ㄧ鍙蜂綅琛ュ厖锛屽鏋滄槸姝f暟鐢0琛ュ厖锛岃礋鏁扮敤1琛ュ厖銆備緥瀛愶細public static void main(String[] args){ System.out.println(3<<2);//3宸︾Щ2浣 System.out.println(-3<<2);//-3宸︾Щ2浣 System.out....
  • 浠涔堟槸java杩愮畻绗
    绛旓細1.绠楁湳杩愮畻绗ava鐨勭畻鏈繍绠楃鍒嗕负涓鍏冭繍绠楃鍜屼簩鍏冭繍绠楃銆備竴鍏冭繍绠楃鍙湁涓涓搷浣滄暟;浜屽厓杩愮畻绗︽湁涓や釜鎿嶄綔鏁,杩愮畻绗︿綅浜庝袱涓搷浣滄暟涔嬮棿銆傜畻鏈繍绠楃鐨勬搷浣滄暟蹇呴』鏄暟鍊肩被鍨嬨(1)涓鍏冭繍绠楃:涓鍏冭繍绠楃鏈:姝(+)銆佽礋(-)銆佸姞1(++)鍜屽噺1(--)4涓傚姞1銆佸噺1杩愮畻绗﹀彧鍏佽鐢ㄤ簬鏁板肩被鍨嬬殑鍙橀噺,涓嶅厑璁哥敤浜庤〃杈惧紡...
  • JAVA鍏崇郴琛ㄨ揪寮忕殑缁撴灉鏄粈涔堢被鍨嬬殑,鍒嗗埆鏄粈涔?
    绛旓細鍙崇Щ鈥>>鈥濆拰宸︾Щ鈥<<鈥濄傚彟澶栬繕鏈夋棤绗﹀彿鐨勫彸绉烩>>>鈥,璺鍙崇Щ杩愮畻绫讳技锛屼笉杩囦笉绠℃璐熸暟锛屽叏鍦ㄥ乏杈圭己灏戠殑鍦版柟琛0锛屾敞鎰忓畠鍙兘鐢ㄥ湪int,long銆傜患涓婏紝琛ㄨ揪寮忔湁鍙岄噸鍔熻兘锛屾墽琛岃〃杈惧紡鐨勮繍绠楀拰杩斿洖鍊笺備笅琛ㄨ鏄庝簡Java鎿嶄綔绗鐨勪紭鍏堢骇锛氬悗缂鎿嶄綔绗 [] . (params) expr++ expr-- 涓鍏冩搷浣滅 ++expr -...
  • java鏁扮粍鍏冪礌鏄庝箞鍒嗚鲸灏忔暟鐨
    绛旓細鐢ㄥ畾鐐规牸寮忋俧loat 鍨 %.2f 灏辨槸灏忔暟2浣嶏紝 %.1f 灏辨槸灏忔暟1浣嶃俤ouble 鍨 鐢 %.2f 灏辨槸灏忔暟2浣嶏紝 %.1f 灏辨槸灏忔暟1浣嶃俤ouble 鍨 鐢 %.2lf 灏辨槸灏忔暟2浣嶏紝 %.1lf 灏辨槸灏忔暟1浣嶃
  • 扩展阅读:扫一扫题目出答案 ... java中 是什么运算符 ... java运算符大全 ... java提供的运算符 ... java逻辑运算符优先级 ... java运算符的优先顺序 ... java算术运算符有哪些 ... java中运算符的优先级 ... java条件运算符 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网