ECMAScript λÔËËã·û
λÔËËã·ûÊÇÔÚÊý×ֵײ㣨¼´±íʾÊý×ÖµÄ 32 ¸öÊý룩½øÐвÙ×÷µÄ¡£
ÖØÎÂÕûÊý
ECMAScript ÕûÊýÓÐÁ½ÖÖÀàÐÍ£¬¼´ÓзûºÅÕûÊý£¨ÔÊÐíÓÃÕýÊýºÍ¸ºÊý£©ºÍÎÞ·ûºÅÕûÊý£¨Ö»ÔÊÐíÓÃÕýÊý£©¡£ÔÚ ECMAScript ÖУ¬ËùÓÐÕûÊý×ÖÃæÁ¿Ä¬È϶¼ÊÇÓзûºÅÕûÊý£¬ÕâÒâζ×ÅÊ²Ã´ÄØ£¿
ÓзûºÅÕûÊýʹÓà 31 λ±íʾÕûÊýµÄÊýÖµ£¬ÓÃµÚ 32 λ±íʾÕûÊýµÄ·ûºÅ£¬0 ±íʾÕýÊý£¬1 ±íʾ¸ºÊý¡£ÊýÖµ·¶Î§´Ó -2147483648 µ½ 2147483647¡£
¿ÉÒÔÒÔÁ½ÖÖ²»Í¬µÄ·½Ê½´æ´¢¶þ½øÖÆÐÎʽµÄÓзûºÅÕûÊý£¬Ò»ÖÖÓÃÓÚ´æ´¢ÕýÊý£¬Ò»ÖÖÓÃÓÚ´æ´¢¸ºÊý¡£ÕýÊýÊÇÒÔÕæ¶þ½øÖÆÐÎʽ´æ´¢µÄ£¬Ç° 31 λÖеÄÿһλ¶¼±íʾ 2 µÄÃÝ£¬´ÓµÚ 1 λ£¨Î» 0£©¿ªÊ¼£¬±íʾ 20£¬µÚ 2 λ£¨Î» 1£©±íʾ 21¡£Ã»Óõ½µÄλÓà 0 Ìî³ä£¬¼´ºöÂÔ²»¼Æ¡£ÀýÈ磬ÏÂͼչʾµÄÊÇÊý 18 µÄ±íʾ·¨¡£

18 µÄ¶þ½øÖư汾ֻÓÃÁËǰ 5 룬ËüÃÇÊÇÕâ¸öÊý×ÖµÄÓÐЧλ¡£°ÑÊý×Öת»»³É¶þ½øÖÆ×Ö·û´®£¬¾ÍÄÜ¿´µ½ÓÐЧλ£º
var iNum = 18;
alert(iNum.toString(2)); //Êä³ö "10010"
Õâ¶Î´úÂëÖ»Êä³ö "10010"£¬¶ø²»ÊÇ 18 µÄ 32 λ±íʾ¡£ÆäËûµÄÊýλ²¢²»ÖØÒª£¬ÒòΪ½öʹÓÃǰ 5 λ¼´¿ÉÈ·¶¨Õâ¸öÊ®½øÖÆÊýÖµ¡£ÈçÏÂͼËùʾ£º

¸ºÊýÒ²´æ´¢Îª¶þ½øÖÆ´úÂ룬²»¹ý²ÉÓõÄÐÎʽÊǶþ½øÖƲ¹Âë¡£¼ÆËãÊý×Ö¶þ½øÖƲ¹ÂëµÄ²½ÖèÓÐÈý²½£º
- È·¶¨¸ÃÊý×ֵķǸº°æ±¾µÄ¶þ½øÖƱíʾ£¨ÀýÈ磬Ҫ¼ÆËã -18µÄ¶þ½øÖƲ¹Â룬Ê×ÏÈҪȷ¶¨ 18 µÄ¶þ½øÖƱíʾ£©
- ÇóµÃ¶þ½øÖÆ·´Â룬¼´Òª°Ñ 0 Ìæ»»Îª 1£¬°Ñ 1 Ìæ»»Îª 0
- ÔÚ¶þ½øÖÆ·´ÂëÉÏ¼Ó 1
Ҫȷ¶¨ -18 µÄ¶þ½øÖƱíʾ£¬Ê×ÏȱØÐëµÃµ½ 18 µÄ¶þ½øÖƱíʾ£¬ÈçÏÂËùʾ£º
0000 0000 0000 0000 0000 0000 0001 0010
½ÓÏÂÀ´£¬¼ÆËã¶þ½øÖÆ·´Â룬ÈçÏÂËùʾ£º
1111 1111 1111 1111 1111 1111 1110 1101
×îºó£¬ÔÚ¶þ½øÖÆ·´ÂëÉÏ¼Ó 1£¬ÈçÏÂËùʾ£º
1111 1111 1111 1111 1111 1111 1110 1101 1 --------------------------------------- 1111 1111 1111 1111 1111 1111 1110 1110
Òò´Ë£¬-18 µÄ¶þ½øÖƱíʾ¼´ 1111 1111 1111 1111 1111 1111 1110 1110¡£¼Çס£¬ÔÚ´¦ÀíÓзûºÅÕûÊýʱ£¬¿ª·¢Õß²»ÄÜ·ÃÎÊ 31 λ¡£
ÓÐȤµÄÊÇ£¬°Ñ¸ºÕûÊýת»»³É¶þ½øÖÆ×Ö·û´®ºó£¬ECMAScript ²¢²»ÒÔ¶þ½øÖƲ¹ÂëµÄÐÎʽÏÔʾ£¬¶øÊÇÓÃÊý×Ö¾ø¶ÔÖµµÄ±ê×¼¶þ½øÖÆ´úÂëÇ°Ãæ¼Ó¸ººÅµÄÐÎʽÊä³ö¡£ÀýÈ磺
var iNum = -18;
alert(iNum.toString(2)); //Êä³ö "-10010"
Õâ¶Î´úÂëÊä³öµÄÊÇ "-10010"£¬¶ø·Ç¶þ½øÖƲ¹Â룬ÕâÊÇΪ±ÜÃâ·ÃÎÊλ 31¡£ÎªÁ˼ò±ã£¬ECMAScript ÓÃÒ»ÖÖ¼òµ¥µÄ·½Ê½´¦ÀíÕûÊý£¬Ê¹µÃ¿ª·¢Õß²»±Ø¹ØÐÄËüÃǵÄÓ÷¨¡£
ÁíÒ»·½Ã棬ÎÞ·ûºÅÕûÊý°Ñ×îºóһλ×÷ΪÁíÒ»¸öÊýλ´¦Àí¡£ÔÚÕâÖÖģʽÖУ¬µÚ 32 λ²»±íʾÊý×ֵķûºÅ£¬¶øÊÇÖµ 231¡£ÓÉÓÚÕâ¸ö¶îÍâµÄ룬ÎÞ·ûºÅÕûÊýµÄÊýÖµ·¶Î§Îª 0 µ½ 4294967295¡£¶ÔÓÚСÓÚ 2147483647 µÄÕûÊýÀ´Ëµ£¬ÎÞ·ûºÅÕûÊý¿´À´ÓëÓзûºÅÕûÊýÒ»Ñù£¬¶ø´óÓÚ 2147483647 µÄÕûÊýÔòҪʹÓÃλ 31£¨ÔÚÓзûºÅÕûÊýÖУ¬Õâһλ×ÜÊÇ 0£©¡£
°ÑÎÞ·ûºÅÕûÊýת»»³É×Ö·û´®ºó£¬Ö»·µ»ØËüÃǵÄÓÐЧλ¡£
×¢Ò⣺ËùÓÐÕûÊý×ÖÃæÁ¿¶¼Ä¬Èϴ洢ΪÓзûºÅÕûÊý¡£Ö»ÓÐ ECMAScript µÄλÔËËã·û²ÅÄÜ´´½¨ÎÞ·ûºÅÕûÊý¡£
λÔËËã NOT
λÔËËã NOT ÓÉ·ñ¶¨ºÅ£¨~£©±íʾ£¬ËüÊÇ ECMAScript ÖÐΪÊý²»¶àµÄÓë¶þ½øÖÆËãÊõÓйصÄÔËËã·ûÖ®Ò»¡£
λÔËËã NOT ÊÇÈý²½µÄ´¦Àí¹ý³Ì£º
- °ÑÔËËãÊýת»»³É 32 λÊý×Ö
- °Ñ¶þ½øÖÆÊýת»»³ÉËüµÄ¶þ½øÖÆ·´Âë
- °Ñ¶þ½øÖÆÊýת»»³É¸¡µãÊý
ÀýÈ磺
var iNum1 = 25; //25 µÈÓÚ 00000000000000000000000000011001
var iNum2 = ~iNum1;
//ת»»Îª 11111111111111111111111111100110
alert(iNum2); //Êä³ö "-26"
λÔËËã NOT ʵÖÊÉÏÊǶÔÊý×ÖÇ󸺣¬È»ºó¼õ 1£¬Òò´Ë 25 ±ä -26¡£ÓÃÏÂÃæµÄ·½·¨Ò²¿ÉÒԵõ½Í¬ÑùµÄ·½·¨£º
var iNum1 = 25;
var iNum2 = -iNum1 -1;
alert(iNum2); //Êä³ö -26
λÔËËã AND
λÔËËã AND Óɺͺţ¨&£©±íʾ£¬Ö±½Ó¶ÔÊý×ֵĶþ½øÖÆÐÎʽ½øÐÐÔËËã¡£Ëü°Ñÿ¸öÊý×ÖÖеÄÊýλ¶ÔÆë£¬È»ºóÓÃÏÂÃæµÄ¹æÔò¶ÔͬһλÖÃÉϵÄÁ½¸öÊýλ½øÐÐ AND ÔËË㣺
µÚÒ»¸öÊý×ÖÖеÄÊýλ | µÚ¶þ¸öÊý×ÖÖеÄÊýλ | ½á¹û |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
ÀýÈ磬Ҫ¶ÔÊý×Ö 25 ºÍ 3 ½øÐÐ AND ÔËË㣬´úÂëÈçÏÂËùʾ£º
var iResult = 25 & 3;
alert(iResult); //Êä³ö "1"
25 ºÍ 3 ½øÐÐ AND ÔËËãµÄ½á¹ûÊÇ 1¡£ÎªÊ²Ã´£¿·ÖÎöÈçÏ£º
25 = 0000 0000 0000 0000 0000 0000 0001 1001 3 = 0000 0000 0000 0000 0000 0000 0000 0011 --------------------------------------------- AND = 0000 0000 0000 0000 0000 0000 0000 0001
¿ÉÒÔ¿´³ö£¬ÔÚ 25 ºÍ 3 ÖУ¬Ö»ÓÐÒ»¸öÊýλ£¨Î» 0£©´æ·ÅµÄ¶¼ÊÇ 1£¬Òò´Ë£¬ÆäËûÊýλÉú³ÉµÄ¶¼ÊÇ 0£¬ËùÒÔ½á¹ûΪ 1¡£
λÔËËã OR
λÔËËã OR ÓÉ·ûºÅ£¨|£©±íʾ£¬Ò²ÊÇÖ±½Ó¶ÔÊý×ֵĶþ½øÖÆÐÎʽ½øÐÐÔËËã¡£ÔÚ¼ÆËãÿλʱ£¬OR ÔËËã·û²ÉÓÃÏÂÁйæÔò£º
µÚÒ»¸öÊý×ÖÖеÄÊýλ | µÚ¶þ¸öÊý×ÖÖеÄÊýλ | ½á¹û |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
ÈÔȻʹÓà AND ÔËËã·ûËùÓõÄÀý×Ó£¬¶Ô 25 ºÍ 3 ½øÐÐ OR ÔËË㣬´úÂëÈçÏ£º
var iResult = 25 | 3;
alert(iResult); //Êä³ö "27"
25 ºÍ 3 ½øÐÐ OR ÔËËãµÄ½á¹ûÊÇ 27£º
25 = 0000 0000 0000 0000 0000 0000 0001 1001 3 = 0000 0000 0000 0000 0000 0000 0000 0011 -------------------------------------------- OR = 0000 0000 0000 0000 0000 0000 0001 1011
¿ÉÒÔ¿´³ö£¬ÔÚÁ½¸öÊý×ÖÖУ¬¹²ÓÐ 4 ¸öÊýλ´æ·ÅµÄÊÇ 1£¬ÕâЩÊýλ±»´«µÝ¸ø½á¹û¡£¶þ½øÖÆ´úÂë 11011 µÈÓÚ 27¡£
λÔËËã XOR
λÔËËã XOR ÓÉ·ûºÅ£¨^£©±íʾ£¬µ±È»£¬Ò²ÊÇÖ±½Ó¶Ô¶þ½øÖÆÐÎʽ½øÐÐÔËËã¡£XOR ²»Í¬ÓÚ OR£¬µ±Ö»ÓÐÒ»¸öÊýλ´æ·ÅµÄÊÇ 1 ʱ£¬Ëü²Å·µ»Ø 1¡£ÕæÖµ±íÈçÏ£º
µÚÒ»¸öÊý×ÖÖеÄÊýλ | µÚ¶þ¸öÊý×ÖÖеÄÊýλ | ½á¹û |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
¶Ô 25 ºÍ 3 ½øÐÐ XOR ÔËË㣬´úÂëÈçÏ£º
var iResult = 25 ^ 3;
alert(iResult); //Êä³ö "26"
25 ºÍ 3 ½øÐÐ XOR ÔËËãµÄ½á¹ûÊÇ 26£º
25 = 0000 0000 0000 0000 0000 0000 0001 1001 3 = 0000 0000 0000 0000 0000 0000 0000 0011 --------------------------------------------- XOR = 0000 0000 0000 0000 0000 0000 0001 1010
¿ÉÒÔ¿´³ö£¬ÔÚÁ½¸öÊý×ÖÖУ¬¹²ÓÐ 4 ¸öÊýλ´æ·ÅµÄÊÇ 1£¬ÕâЩÊýλ±»´«µÝ¸ø½á¹û¡£¶þ½øÖÆ´úÂë 11010 µÈÓÚ 26¡£
×óÒÆÔËËã
×óÒÆÔËËãÓÉÁ½¸öСÓںűíʾ£¨<<£©¡£Ëü°ÑÊý×ÖÖеÄËùÓÐÊýλÏò×óÒÆ¶¯Ö¸¶¨µÄÊýÁ¿¡£ÀýÈ磬°ÑÊý×Ö 2£¨µÈÓÚ¶þ½øÖÆÖÐµÄ 10£©×óÒÆ 5 룬½á¹ûΪ 64£¨µÈÓÚ¶þ½øÖÆÖÐµÄ 1000000£©£º
var iOld = 2; //µÈÓÚ¶þ½øÖÆ 10 var iNew = iOld << 5; //µÈÓÚ¶þ½øÖÆ 1000000 Ê®½øÖÆ 64
×¢Ò⣺ÔÚ×óÒÆÊýλʱ£¬Êý×ÖÓұ߶à³ö 5 ¸ö¿Õλ¡£×óÒÆÔËËãÓà 0 Ìî³äÕâЩ¿Õλ£¬Ê¹½á¹û³ÉΪÍêÕûµÄ 32 λÊý×Ö¡£

×¢Ò⣺×óÒÆÔËËã±£ÁôÊý×ֵķûºÅλ¡£ÀýÈ磬Èç¹û°Ñ -2 ×óÒÆ 5 룬µÃµ½µÄÊÇ -64£¬¶ø²»ÊÇ 64¡£¡°·ûºÅÈÔÈ»´æ´¢ÔÚµÚ 32 λÖÐÂ𣿡±Êǵ쬲»¹ýÕâÔÚ ECMAScript ºǫ́½øÐУ¬¿ª·¢Õß²»ÄÜÖ±½Ó·ÃÎÊµÚ 32 ¸öÊýλ¡£¼´Ê¹Êä³ö¶þ½øÖÆ×Ö·û´®ÐÎʽµÄ¸ºÊý£¬ÏÔʾµÄÒ²ÊǸººÅÐÎʽ£¨ÀýÈ磬-2 ½«ÏÔʾ -10¡££©
ÓзûºÅÓÒÒÆÔËËã
ÓзûºÅÓÒÒÆÔËËã·ûÓÉÁ½¸ö´óÓںűíʾ£¨>>£©¡£Ëü°Ñ 32 λÊý×ÖÖеÄËùÓÐÊýλÕûÌåÓÒÒÆ£¬Í¬Ê±±£Áô¸ÃÊýµÄ·ûºÅ£¨ÕýºÅ»ò¸ººÅ£©¡£ÓзûºÅÓÒÒÆÔËËã·ûÇ¡ºÃÓë×óÒÆÔËËãÏà·´¡£ÀýÈ磬°Ñ 64 ÓÒÒÆ 5 룬½«±äΪ 2£º
var iOld = 64; //µÈÓÚ¶þ½øÖÆ 1000000 var iNew = iOld >> 5; //µÈÓÚ¶þ½øÖÆ 10 Ê®½øÖÆ 2
ͬÑù£¬Òƶ¯Êýλºó»áÔì³É¿Õλ¡£Õâ´Î£¬¿ÕλλÓÚÊý×ÖµÄ×ó²à£¬µ«Î»ÓÚ·ûºÅλ֮ºó¡£ECMAScript Ó÷ûºÅλµÄÖµÌî³äÕâЩ¿Õ룬´´½¨ÍêÕûµÄÊý×Ö£¬ÈçÏÂͼËùʾ£º

ÎÞ·ûºÅÓÒÒÆÔËËã
ÎÞ·ûºÅÓÒÒÆÔËËã·ûÓÉÈý¸ö´óÓںţ¨>>>£©±íʾ£¬Ëü½«ÎÞ·ûºÅ 32 λÊýµÄËùÓÐÊýλÕûÌåÓÒÒÆ¡£¶ÔÓÚÕýÊý£¬ÎÞ·ûºÅÓÒÒÆÔËËãµÄ½á¹ûÓëÓзûºÅÓÒÒÆÔËËãÒ»Ñù¡£
ÓÃÓзûºÅÓÒÒÆÔËËãÖеÄÀý×Ó£¬°Ñ 64 ÓÒÒÆ 5 룬½«±äΪ 2£º
var iOld = 64; //µÈÓÚ¶þ½øÖÆ 1000000 var iNew = iOld >>> 5; //µÈÓÚ¶þ½øÖÆ 10 Ê®½øÖÆ 2
¶ÔÓÚ¸ºÊý£¬Çé¿ö¾Í²»Í¬ÁË¡£
ÎÞ·ûºÅÓÒÒÆÔËËãÓà 0 Ìî³äËùÓпÕλ¡£¶ÔÓÚÕýÊý£¬ÕâÓëÓзûºÅÓÒÒÆÔËËãµÄ²Ù×÷Ò»Ñù£¬¶ø¸ºÊýÔò±»×÷ΪÕýÊýÀ´´¦Àí¡£
ÓÉÓÚÎÞ·ûºÅÓÒÒÆÔËËãµÄ½á¹ûÊÇÒ»¸ö 32 λµÄÕýÊý£¬ËùÒÔ¸ºÊýµÄÎÞ·ûºÅÓÒÒÆÔËËãµÃµ½µÄ×ÜÊÇÒ»¸ö·Ç³£´óµÄÊý×Ö¡£ÀýÈ磬Èç¹û°Ñ -64 ÓÒÒÆ 5 룬½«µÃµ½ 134217726¡£ÈçºÎµÃµ½ÕâÖÖ½á¹ûµÄÄØ£¿
ҪʵÏÖÕâÒ»µã£¬ÐèÒª°ÑÕâ¸öÊý×Öת»»³ÉÎÞ·ûºÅµÄµÈ¼ÛÐÎʽ£¨¾¡¹Ü¸ÃÊý×Ö±¾Éí»¹ÊÇÓзûºÅµÄ£©£¬¿ÉÒÔͨ¹ýÒÔÏ´úÂë»ñµÃÕâÖÖÐÎʽ£º
var iUnsigned64 = -64 >>> 0;
È»ºó£¬Óà Number ÀàÐ굀 toString() »ñÈ¡ËüµÄÕæÕýµÄλ±íʾ£¬²ÉÓõĻùΪ 2£º
alert(iUnsigned64.toString(2));
Õ⽫Éú³É 11111111111111111111111111000000£¬¼´ÓзûºÅÕûÊý -64 µÄ¶þ½øÖƲ¹Âë±íʾ£¬²»¹ýËüµÈÓÚÎÞ·ûºÅÕûÊý 4294967232¡£
³öÓÚÕâÖÖÔÒò£¬Ê¹ÓÃÎÞ·ûºÅÓÒÒÆÔËËã·ûҪСÐÄ¡£