java位移运算符 java位移运算符有什么意义

Java \u79fb\u4f4d>>\u8fd0\u7b97\u7b26\uff0c\u770b\u4ee3\u7801\u3002

-4\u7684\u4e8c\u8fdb\u5236\u8868\u793a\u4e3a1111 1111 1111 1011
i>>3 \u53f3\u79fb3\u4f4d\uff0c\u79fb\u51fa\u7684\u4e0d\u7ba1\uff0c\u5de6\u7aef\u88651 \u53d8\u4e3a1111 1111 1111 1111 \u8fd9\u662f-1\u7684\u4e8c\u8fdb\u5236\u8868\u793a\uff0c\u6240\u4ee5\u7ed3\u679c\u4e3a-1.
i>>5 \u540c\u7406\u3002

\u5177\u4f53\u539f\u7406\uff1a
\u5148\u6765\u8bf4\u4e00\u4e0b\u600e\u4e48\u5f97\u51fa\u8d1f\u6570\u7684\u4e8c\u8fdb\u5236\u3002\u539f\u7801\uff0c\u53cd\u7801\uff0c\u8865\u7801\uff0c\u8fd9\u4e09\u4e2a\u6982\u5ff5\u641e\u6e05\u3002
1\u3001\u539f\u7801\uff1a\u4e00\u4e2a\u6b63\u6570\uff0c\u6309\u7167\u7edd\u5bf9\u503c\u5927\u5c0f\u8f6c\u6362\u6210\u7684\u4e8c\u8fdb\u5236\u6570\uff1b\u4e00\u4e2a\u8d1f\u6570\u6309\u7167\u7edd\u5bf9\u503c\u5927\u5c0f\u8f6c\u6362\u6210\u7684\u4e8c\u8fdb\u5236\u6570\uff0c\u7136\u540e\u6700\u9ad8\u4f4d\u88651\uff0c\u79f0\u4e3a\u539f\u7801\u3002
\u6bd4\u5982 00000000 00000000 00000000 00000101 \u662f 5\u7684 \u539f\u7801\u3002
10000000 00000000 00000000 00000101 \u662f -5\u7684 \u539f\u7801\u3002

\u5907\u6ce8\uff1a
\u6bd4\u5982byte\u7c7b\u578b,\u75282^8\u6765\u8868\u793a\u65e0\u7b26\u53f7\u6574\u6570\u7684\u8bdd,\u662f0 - 255\u4e86\uff1b\u5982\u679c\u6709\u7b26\u53f7\uff0c \u6700\u9ad8\u4f4d\u8868\u793a\u7b26\u53f7,0\u4e3a\u6b63,1\u4e3a\u8d1f,\u90a3\u4e48,\u6b63\u5e38\u7684\u7406\u89e3\u5c31\u662f -127 \u81f3 +127 \u4e86.\u8fd9\u5c31\u662f\u539f\u7801\u4e86,\u503c\u5f97\u4e00\u63d0\u7684\u662f,\u539f\u7801\u7684\u5f31\u70b9,\u67092\u4e2a0,\u5373+0\u548c-0\uff0810000000\u548c00000000\uff09\uff1b\u8fd8\u6709\u5c31\u662f,\u8fdb\u884c\u5f02\u53f7\u76f8\u52a0\u6216\u540c\u53f7\u76f8\u51cf\u65f6,\u6bd4\u8f83\u7b28\u86cb,\u5148\u8981\u5224\u65ad2\u4e2a\u6570\u7684\u7edd\u5bf9\u503c\u5927\u5c0f,\u7136\u540e\u8fdb\u884c\u52a0\u51cf\u64cd\u4f5c,\u6700\u540e\u8fd0\u7b97\u7ed3\u679c\u7684\u7b26\u53f7\u8fd8\u8981\u4e0e\u5927\u7684\u7b26\u53f7\u76f8\u540c\uff1b\u4e8e\u662f,\u53cd\u7801\u4ea7\u751f\u4e86\u3002

2\u3001\u53cd\u7801\uff1a\u6b63\u6570\u7684\u53cd\u7801\u4e0e\u539f\u7801\u76f8\u540c\uff0c\u8d1f\u6570\u7684\u53cd\u7801\u4e3a\u5bf9\u8be5\u6570\u7684\u539f\u7801\u9664\u7b26\u53f7\u4f4d\u5916\u5404\u4f4d\u53d6\u53cd[\u6bcf\u4e00\u4f4d\u53d6\u53cd(\u9664\u7b26\u53f7\u4f4d)]\u3002
\u53d6\u53cd\u64cd\u4f5c\u6307\uff1a\u539f\u4e3a1\uff0c\u5f970\uff1b\u539f\u4e3a0\uff0c\u5f971\u3002\uff081\u53d80; 0\u53d81\uff09
\u6bd4\u5982\uff1a\u6b63\u657000000000 00000000 00000000 00000101 \u7684\u53cd\u7801\u8fd8\u662f 00000000 00000000 00000000 00000101
\u8d1f\u657010000000 00000000 00000000 00000101 \u7684\u53cd\u7801\u5219\u662f 11111111 11111111 11111111 11111010\u3002

\u53cd\u7801\u662f\u76f8\u4e92\u7684\uff0c\u6240\u4ee5\u4e5f\u53ef\u79f0\uff1a10000000 00000000 00000000 00000101 \u548c 11111111 11111111 11111111 11111010\u4e92\u4e3a\u53cd\u7801\u3002

\u5907\u6ce8\uff1a\u8fd8\u662f\u6709+0\u548c-0,\u6ca1\u8fc7\u591a\u4e45\uff0c\u53cd\u7801\u5c31\u6210\u4e3a\u4e86\u8fc7\u6ee4\u4ea7\u7269,\u4e5f\u5c31\u662f,\u540e\u6765\u8865\u7801\u51fa\u73b0\u4e86\u3002

3\u3001\u8865\u7801\uff1a\u6b63\u6570\u7684\u8865\u7801\u4e0e\u539f\u7801\u76f8\u540c\uff0c\u8d1f\u6570\u7684\u8865\u7801\u4e3a\u5bf9\u8be5\u6570\u7684\u539f\u7801\u9664\u7b26\u53f7\u4f4d\u5916\u5404\u4f4d\u53d6\u53cd\uff0c\u7136\u540e\u5728\u6700\u540e\u4e00\u4f4d\u52a01.
\u6bd4\u5982\uff1a10000000 00000000 00000000 00000101 \u7684\u8865\u7801\u662f\uff1a11111111 11111111 11111111 11111010\u3002
\u90a3\u4e48\uff0c\u8865\u7801\u4e3a\uff1a
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

\u5907\u6ce8\uff1a1\u3001\u4ece\u8865\u7801\u6c42\u539f\u7801\u7684\u65b9\u6cd5\u8ddf\u539f\u7801\u6c42\u8865\u7801\u662f\u4e00\u6837\u7684 \uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5b8c\u5168\u9006\u8fd0\u7b97\u6765\u505a\uff0c\u5148\u51cf\u4e00\uff0c\u518d\u53d6\u53cd\u3002
2\u3001\u8865\u7801\u5374\u89c4\u5b9a0\u6ca1\u6709\u6b63\u8d1f\u4e4b\u5206

\u6240\u4ee5\uff0c-5 \u5728\u8ba1\u7b97\u673a\u4e2d\u8868\u8fbe\u4e3a\uff1a11111111 11111111 11111111 11111011\u3002\u8f6c\u6362\u4e3a\u5341\u516d\u8fdb\u5236\uff1a0xFFFFFFFB\u3002


\u641e\u61c2\u4e8c\u8fdb\u5236\u8868\u793a\u540e\uff0c\u518d\u6765\u8bf4\u4e00\u4e0b\u5de6\u79fb\u53f3\u79fb\u8fd0\u7b97\u7b26\u3002
\u5de6\u79fb\u8fd0\u7b97\u662f\u5c06\u4e00\u4e2a\u4e8c\u8fdb\u5236\u4f4d\u7684\u64cd\u4f5c\u6570\u6309\u6307\u5b9a\u79fb\u52a8\u7684\u4f4d\u6570\u5411\u5de6\u79fb\u4f4d\uff0c\u79fb\u51fa\u4f4d\u88ab\u4e22\u5f03\uff0c\u53f3\u8fb9\u7684\u7a7a\u4f4d\u4e00\u5f8b\u88650\u3002\u53f3\u79fb\u8fd0\u7b97\u662f\u5c06\u4e00\u4e2a\u4e8c\u8fdb\u5236\u4f4d\u7684\u64cd\u4f5c\u6570\u6309\u6307\u5b9a\u79fb\u52a8\u7684\u4f4d\u6570\u5411\u53f3\u79fb\u52a8\uff0c\u79fb\u51fa\u4f4d\u88ab\u4e22\u5f03\uff0c\u5de6\u8fb9\u79fb\u51fa\u7684\u7a7a\u4f4d\u6216\u8005\u4e00\u5f8b\u88650\uff0c\u6216\u8005\u8865\u7b26\u53f7\u4f4d\uff0c\u8fd9\u7531\u4e0d\u540c\u7684\u673a\u5668\u800c\u5b9a\u3002\u5728\u4f7f\u7528\u8865\u7801\u4f5c\u4e3a\u673a\u5668\u6570\u7684\u673a\u5668\u4e2d\uff0c\u6b63\u6570\u7684\u7b26\u53f7\u4f4d\u4e3a0\uff0c\u8d1f\u6570\u7684\u7b26\u53f7\u4f4d\u4e3a1\u3002\uff08\u5747\u7531\u673a\u5668\u6765\u5b9a\uff09

So\uff0c\u4e3a\u4ec0\u4e48\u5f97\u5230-1\u77e5\u9053\u4e86\u5427~~~

\u7ed9\u4f60\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u4e58\u9664\u6cd5\u53ef\u4ee5\u4f7f\u7528\u4f4d\u8fd0\u7b97\uff0c\u901f\u5ea6\u66f4\u5feb\u3002\u5f88\u591a\u5e95\u5c42\u7684\u4e1c\u897f\u662f\u7528\u4f4d\u8fd0\u7b97\u53bb\u5b9e\u73b0\u7684\uff0c\u4f60\u53bb\u770b\u770bjava\u7684\u5f88\u591a\u6e90\u7801\uff0c\u8fd8\u6709IO\u6d41\u7684\u5904\u7406\u6709\u65f6\u5019\u4f1a\u7528\u4f4d\u8fd0\u7b97\uff0c\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u8bfb\u5199\u89e3\u6790\u7b49\u90fd\u9700\u8981\u4f4d\u8fd0\u7b97\uff0c\u5982\u679c\u4f60\u4e86\u89e3\u5e95\u5c42\u7684\u4e1c\u897f\uff0c\u4f60\u4f1a\u4f4d\u8fd0\u7b97\uff0c\u8fd9\u56de\u8ba9\u4f60\u7684\u7a0b\u5e8f\u751f\u6daf\u66f4\u52a0\u7cbe\u5f69\uff0c\u671b\u91c7\u7eb3\uff0c\u8c22\u8c22

 学习Java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,通过Java学习机构学到Java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累。
  今天给大家分享的技术知识是:Java中的位移运算符!
  1) “有符号”左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。
  左移移位相当于乘以2,例如
  3 << 2 //12 则是将数字3左移2位 3*2*2 = 3*(2的2次方)
  分析:首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:
  在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
  2) “有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。 “有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。
  >>运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,移位后得到的数字为正数则补0,负数补1。
  例如11 >> 2,则是将数字11右移2位
  分析:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是3.数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。
  3) Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0
  4)右移一位相当于除以2,左移一位(在不溢出的情况下)相当于乘以2;移位运算速度高于乘除运算。
  5)位运算符的优先级
  ~的优先级最高,其次是<<、>>和>>>,再次是&,然后是^,优先级最低的是|。

比如
int=7>>2
这儿的7用二进制表示是0000 0111 所有的向右移两位, 前面补0, 也就是 0000 0001 最后结果为1.
第二个, 右移负数我没研究过, 下次有时间了再看.
第三个. 移动运算符的符号指的是带符号数的移位, 正数符号位是0, 负数符号位是1.

  • java浣嶇Щ杩愮畻绗
    绛旓細1) 鈥滄湁绗﹀彿鈥濆乏绉讳綅杩愮畻绗(<<)鑳藉皢杩愮畻绗﹀乏杈圭殑杩愮畻瀵硅薄鍚戝乏绉诲姩杩愮畻绗﹀彸渚ф寚瀹氱殑浣嶆暟(鍦ㄤ綆浣嶈ˉ0)銆傚乏绉荤Щ浣嶇浉褰撲簬涔樹互2锛屼緥濡 3 << 2 //12 鍒欐槸灏嗘暟瀛3宸︾Щ2浣 3*2*2 = 3*(2鐨2娆℃柟)鍒嗘瀽锛氶鍏堟妸3杞崲涓轰簩杩涘埗鏁板瓧0000 0000 0000 0000 0000 0000 0000 0011锛岀劧鍚庢妸璇ユ暟瀛楅珮浣(宸︿晶...
  • java涓殑<<鏄粈涔堟剰鎬?
    绛旓細浣嶇Щ鍔杩愮畻绗:<<琛ㄧず宸︾Щ, 宸︾Щ涓浣嶈〃绀哄師鏉ョ殑鍊间箻2.渚嬪锛3 <<2(3涓篿nt鍨)1锛夋妸3杞崲涓轰簩杩涘埗鏁板瓧0000 0000 0000 0000 0000 0000 0000 0011锛2锛夋妸璇ユ暟瀛楅珮浣(宸︿晶)鐨勪袱涓浂绉诲嚭锛屽叾浠栫殑鏁板瓧閮芥湞宸﹀钩绉2浣嶏紝3锛夊湪浣庝綅(鍙充晶)鐨勪袱涓┖浣嶈ˉ闆躲傚垯寰楀埌鐨勬渶缁堢粨鏋滄槸0000 0000 0000 0000 000...
  • Java涓&鏄粈涔堟剰鎬?
    绛旓細&鍦java涓〃绀轰綅杩愮畻绗鍗筹紝鎸変綅涓庤繍绠椼傜敤鏉ュ浜岃繘鍒朵綅杩涜鎿嶄綔锛屼负浜屽厓杩愮畻绗︼紝鏅鸿兘涓烘暣鍨嬪拰瀛楃鍨嬫暟鎹傚鏋滀袱涓繍绠楁暟閮芥槸1锛屽垯缁撴灉涓1.鍏朵粬鎯呭喌涓嬶紝缁撴灉鍧囦负闆讹細00101010(鍗佽繘鍒跺间负42)&00001111(鍗佽繘鍒跺间负15)=00001010(鍗佽繘鍒跺10)鑰屽湪java璇█涓 i1&=3鐨勮〃杈惧紡鐨勫睍寮褰㈠紡涓猴細i1=i1&3,...
  • java涓殑浣杩愮畻绗鍙婂叾鐢ㄦ硶銆
    绛旓細浠婂ぉ缁欏ぇ瀹跺垎浜殑鎶鏈煡璇嗘槸:Java涓殑浣嶇Щ杩愮畻绗! 1) 鈥滄湁绗﹀彿鈥濆乏绉讳綅杩愮畻绗(<<)鑳藉皢杩愮畻绗﹀乏杈圭殑杩愮畻瀵硅薄鍚戝乏绉诲姩杩愮畻绗﹀彸渚ф寚瀹氱殑浣嶆暟(鍦ㄤ綆浣嶈ˉ0)銆 宸︾Щ绉讳綅鐩稿綋浜庝箻浠2,渚嬪 3 << 2 //12 鍒欐槸灏嗘暟瀛3宸︾Щ2浣 3*2*2 = 3*(2鐨2娆℃柟) 鍒嗘瀽:棣栧厛鎶3杞崲涓轰簩杩涘埗鏁板瓧0000 0000 0000 0000 0000...
  • JAVA閲岄潰鐨勪綅杩愮畻绗>>,<<,>>>鏄粈涔堟剰鎬,璇蜂妇涓垪瀛愬叿浣撹鏄庝竴涓?_鐧 ...
    绛旓細java 涓細>>甯︾鍙峰彸绉 (n>>2 灏嗘暣鍨嬪煎甫绗﹀彿鍙崇Щ2浣 锛<<甯︾鍙峰乏绉 (n<<2 灏嗘暣鍨嬪煎甫绗﹀彿宸︾Щ2浣 锛>>>鏃犵鍙峰彸绉 (n>>>2 灏嗘暣鍨嬪兼棤绗﹀彿鍙崇Щ2浣 锛 鍦32浣嶇郴缁熶腑浠讳綍鏁板乏绉(鍙崇Щ)32浣嶈繕鏄畠鏈韩 渚嬪:�6�1a=a锛滐紲2灏哸...
  • Java涓,浣杩愮畻绗>>,鍙崇Щ鏃跺乏杈逛綍鏃惰ˉ0,浣曟椂琛1
    绛旓細鈥滄湁绗﹀彿鈥濆彸绉讳綅杩愮畻绗浣跨敤浜嗏滅鍙锋墿灞曗濓細鑻ュ间负姝o紝鍒欏湪楂樹綅鎻掑叆0锛涜嫢鍊间负璐燂紝鍒欏湪楂樹綅鎻掑叆1銆Java涔熸坊鍔犱簡涓绉嶁滄棤绗﹀彿鈥濆彸绉讳綅杩愮畻绗︼紙>>>锛夛紝瀹冧娇鐢ㄤ簡鈥滈浂鎵╁睍鈥濓細鏃犺姝h礋锛岄兘鍦ㄩ珮浣嶆彃鍏0銆傝繖涓杩愮畻绗︽槸C鎴朇++娌℃湁鐨勩傝嫢瀵筩har锛宐yte鎴栬卻hort杩涜绉讳綅澶勭悊锛岄偅涔堝湪绉讳綅杩涜涔嬪墠锛屽畠浠細...
  • java杩愮畻涓&鏄粈涔堟剰鎬,姣斿a=1;b=2;a&b=澶氬皯
    绛旓細鎸変綅涓庤繍绠楁湁涓ょ鍏稿瀷鐢ㄦ硶锛屼竴鏄彇涓涓綅涓蹭俊鎭殑鏌愬嚑浣嶏紝濡備互涓嬩唬鐮佹埅鍙杧鐨勬渶浣7浣嶏細x & 0177銆備簩鏄鏌愬彉閲忎繚鐣欐煇鍑犱綅锛屽叾浣欎綅缃0锛屽浠ヤ笅浠g爜璁﹛鍙繚鐣欐渶浣6浣嶏細x = x & 077銆Java 鐨勮〃杈惧紡灏辨槸鐢杩愮畻绗杩炴帴璧锋潵鐨勭鍚圝ava 瑙勫垯鐨勫紡瀛愶紝杩愮畻绗︾殑浼樺厛绾у喅瀹氫簡琛ㄨ揪寮忎腑杩愮畻鎵ц鐨勫厛鍚庨『搴忋
  • JAVA浣杩愮畻绗
    绛旓細浣嶆搷浣绗(bitwise operator) 浣嶆搷浣滅鍏佽鎴戜滑鎿嶄綔涓涓熀鏈暟鎹被鍨嬩腑鐨勬暣鏁板瀷鍊肩殑鍗曚釜鈥滄瘮鐗(bit)鈥,鍗充簩杩涘埗浣嶃備綅鎿嶄綔绗︿細瀵逛袱涓弬鏁板搴旂殑浣嶆墽琛屽竷灏斾唬鏁杩愮畻,骞舵渶缁堢敓鎴愪竴涓粨鏋溿 浣嶆搷浣滅鏉ユ簮浜 C 璇█闈㈠悜搴曞眰鐨勬搷浣,閭f椂鎴戜滑缁忓父闇瑕佺洿鎺ユ搷绾电‖浠,璁剧疆纭欢瀵勫瓨鍣ㄥ唴鐨勪簩杩涘埗浣嶃Java鐨勮璁″垵琛锋槸宓屽叆鐢佃...
  • java涓変釜澶т簬鍙锋槸浠涔堟剰鎬
    绛旓細java涓変釜澶т簬鍙凤紙>>>锛夋槸鏃犵鍙峰彸绉昏繍绠楃锛岀敤鏉ュ皢涓涓暟瀛楃殑姣旂壒浣嶅悜鍙崇Щ鍔ㄧ粰瀹氱殑浣嶆暟锛屽湪绉诲姩鐨勮繃绋嬩腑锛屽乏杈硅鑸嶅純鐨勪綅琚ˉ涓0銆傚畠閫氬父鐢ㄤ簬鍦ㄥ鐞嗘暣褰㈡暟鎹椂锛屼娇寰浣嶇Щ鏇村鏄撱傞櫎浜嗘棤绗﹀彿鍙崇Щ杩愮畻绗︿箣澶栵紝java杩樻彁渚涗簡鍏朵粬鍑犵浣嶈繍绠楃锛屽锛>锛堟湁绗﹀彿鍙崇Щ杩愮畻绗︼級銆&锛堟寜浣嶄笌杩愮畻绗︼級銆亅锛堟寜...
  • 扩展阅读:java运算符大全 ... substring截取字符串 ... java中字符 ... 逻辑运算符有哪三种 ... java中符号大全 ... java常用的运算符 ... java关键字 ... 运算符优先级python ... java逻辑运算符& ...

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