java 移位运算 java移位运算

\u8bf7\u6559JAVA\u7684\u79fb\u4f4d\u8fd0\u7b97\u7b26\u7684\u65b9\u6cd5

11010011 << 1
\u8868\u793a\u6240\u6709\u4f4d\u5c45\u5411\u524d\u79fb\u4e00\u4f4d\uff0c\u539f\u6709\u7684\u7b26\u53f7\u4fdd\u7559\uff0c\u5982\u679c\u662f\u6b63\u6570\u8fd8\u662f\u6b63\u6570\uff0c\u8d1f\u6570\u8fd8\u662f\u590d\u6570\u3002\u4f4d\u79fb\u4ee5\u540e\u7684\u6570\u4e3a\uff1a10100110,\u7531\u4e8e\u5728\u5411\u524d\u79fb\u7684\u8fc7\u7a0b\u4e2d\uff0c\u539f\u6765\u7684\u7b2c\u4e00\u4f4d\u8d85\u51fa\u4e86\u8303\u56f4\uff0c\u6240\u4ee5\u5c06\u88ab\u820d\u5f03\uff0c\u539f\u6765\u7684\u6700\u540e\u4e00\u4f4d\u5411\u524d\u79fb\u4ee5\u540e\uff0c\u4e0d\u8db3\u7684\u4f4d\u6570\u75280\u586b\u5145\u3002

11010011 >> 1
\u79fb\u5b8c\u4ee5\u540e\u7684\u7ed3\u679c\u4e3a01101001.\u6bcf\u4e2a\u4f4d\u4e0a\u7684\u6570\u5b57\u5747\u5411\u53f3\u79fb\u4e00\u4f4d\uff0c\u4e0d\u8db3\u7684\u4f4d\u75280\u586b\u5145\uff0c\u539f\u6765\u6700\u540e\u4e00\u4f4d1\u5c06\u88ab\u820d\u5f03\u3002

\u800c>>\u90fd\u8868\u793a\u65e0\u7b26\u53f7\u4f4d\u79fb\uff0c-11010011 \u5c06\u6309\u7167>\u7684\u89c4\u5219\u8fdb\u884c\u4f4d\u79fb\uff0c\u4f46\u662f\u65e0\u8bba\u662f>>\uff0c\u90fd\u8868\u793a\u5f97\u51fa\u7684\u6700\u7ec8\u7ed3\u679c\u662f\u6ca1\u6709\u7b26\u53f7\u7684\uff0c\u4e5f\u5c31\u662f\u8fd9\u6837\u4f4d\u79fb\u51fa\u6765\u7684\u7ed3\u679c\u90fd\u662f\u6b63\u6570\u3002\uff1b\u5229\u7528\u8fd9\u4e2a\u7279\u6027\uff0c\u5728\u4e00\u4e9b\u9700\u8981\u53d6\u968f\u673a\u6b63\u6574\u6570\u7684\u5730\u65b9\u6216\u8005\u5176\u4ed6\u9700\u8981\u5ffd\u7565\u7b26\u53f7\u4ee5\u53ca\u9700\u8981\u5c06\u8d1f\u6570\u901a\u8fc7\u4f4d\u79fb\u53d8\u4e3a\u6b63\u6570\u7684\u8ba1\u7b97\u4e2d\uff0c\u53ef\u4ee5\u5229\u7528\u8fd9\u4e2a\u7279\u6027\u65b9\u4fbf\u5feb\u6377\u7684\u5f97\u51fa\u8ba1\u7b97\u7ed3\u679c\u3002


\u7b80\u5355\u7684\u8bb2\uff0c<<\u8868\u793a2\u7684\u6574\u6570\u500d\u7684\u4e58\u79ef\u8ba1\u7b97\u3002\u6bd4\u5982\uff0c1 << 3 = 1 * (2 * 2 * 2) = 8 , 1 << 1 * (2 * 2 * 2 * 2) = 16,
>>\u8868\u793a2\u7684\u6574\u6570\u500d\u7684\u9664\u8fd0\u7b97
16 >> 4 = 16 / (2 * 2 * 2 * 2) = 1,
16 >> 3 = 16 / (2 * 2 * 2) = 2,
16 >> 2 = 16 / (2 * 2) = 4,
16 >> 1 = 16 / (2) = 8,
\u4f46\u662f\u5927\u90e8\u5206\u7684\u6570\u5b57\u90fd\u4e0d\u662f2\u7684\u6574\u6570\u500d\u7684\uff0c\u6bd4\u598217\u5728\u4f4d\u79fb\u7684\u65f6\u5019\uff0c\u5f97\u51fa\u7684\u7ed3\u679c\u4e0e16\u662f\u4e00\u6837\u7684\uff0c\u56e0\u4e3a\u4f4d\u79fb\u7684\u7ed3\u679c\u6ca1\u6709\u5c0f\u6570\uff0c\u5373\u4f7f\u662f8.999999,\u4e5f\u5c06\u88ab\u53d6\u6574\u4e3a8.


\u6700\u7ec8\u7ed3\u679c(\u697c\u4e3b\u6ca1\u6709\u8bf4\u660e\u4f4d\u79fb\u51e0\u4f4d\uff0c\u4f8b\u5b50\u5c31\u4ee5\u4f4d\u79fb\u4e00\u4f4d\u548c2\u4f4d\u4e3a\u4e3b)
11010011 << 1 10100110
11010011 << 2 01001100
-11010011 << 1 -10100110
-11010011 << 2 -01001100

11010011 >> 1 01101001
11010011 >> 2 00110100
-11010011 >> 1 -01101001
-11010011 >> 2 -00110100

11010011 <<< 1 10100110
11010011 <<< 2 01001100
-11010011 <<< 1 10100110
-11010011 <<< 2 01001100

11010011 >>> 1 01101001
11010011 >>> 2 00110100
-11010011 >>> 1 01101001
-11010011 >>> 2 00110100

\u8fd9\u4e2a\u8bd5\u4e00\u4e0b\u5c31\u77e5\u9053\u4e86
\u6bd4\u5982-2 \u5047\u5b9a\u53ea\u67098\u4f4d 1000 0010
\u5982\u679c\u662f\u539f\u7801 \u90a3\u4e48\u5c31\u662f1000 0010 >>1 =1000 0001 \u8fd9\u5c31\u662f-1
\u5982\u679c\u662f\u8865\u7801 \u5c31\u662f1111 1110>>1 =1011 1111 \u8fd9\u5c31\u662f-63\u4e86 (\u5f53\u7136 \u5982\u679c\u662f\u5176\u4ed6\u4f4d\u6570\u80af\u5b9a\u4e0d\u662f-63)
\u4e0d\u8fc7-2>>1\u662f-1 \u6240\u4ee5\u662f\u64cd\u4f5c\u7684\u539f\u7801

10>>2相当于10/(2平方)也就是10/4,整数向下取整,等于2;
-10>>2相当于-10/(2平方)也就是(-10)/4,整数向下取整,等于-3;
10<<2相当于10*(2平方)也就是10*4,等于40;
-10<<2相当于-10*(2平方)也就是(-10)*4,等于-40.

扩展阅读:javaw exe ... java equals ... java入门网站 ... java官网网址 ... javascript入门 ... java 方法重写 ... 会c学java要多久 ... java 的普通加法运算 ... java 与运算 ...

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