<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          位操作符

          共 1481字,需瀏覽 3分鐘

           ·

          2020-12-20 23:10


          位操作符用于在最基本的層次上,即按內(nèi)存中表示數(shù)值的位來操作數(shù)值。ECMAScript中的所有數(shù)值都以IEEE-754 64位格式存儲,但位操作符并不直接操作 64位的值。而是先將64位的值轉(zhuǎn)換成32位的整數(shù),然后執(zhí)行操作,最后再將結(jié)果轉(zhuǎn) 換回64位。對于開發(fā)人員來說,由于64位存儲格式是透明的,因此整個過程就像是 只存在32位的整數(shù)一樣。


          對于有符號的整數(shù),32位中的前31位用于表示整數(shù)的值。第32位用于表示數(shù)值的符 號:0表示正數(shù),1表示負數(shù)。這個表示符號的位叫做符號位,符號位的值決定了其 他位數(shù)值的格式。其中,正數(shù)以純二進制格式存儲,31位中的每一位都表示2的 冪。第一位(叫做位0)表示20,第二位表示21,以此類推。沒有用到的位以0填 充,即忽略不計。例如,數(shù)值18的二進制表示是 00000000000000000000000000010010,或者更簡潔的10010。這是5個有效位,這5 位本身就決定了實際的值(如圖所示)。


          (18).toString(2)// "10010"

          按位與(AND) &

          &以特定的方式組合操作二進制數(shù)中對應(yīng)的位,如果對應(yīng)的位都為1,那么結(jié)果就是1, 如果任意一個位是0 則結(jié)果就是0。

          // 1的二進制表示為: 00000000 00000000 00000000 00000001// 3的二進制表示為: 00000000 00000000 00000000 00000011// -----------------------------// 1的二進制表示為: 00000000 00000000 00000000 00000001console.log(1 & 3)     // 1

          按位或(OR) |

          | 運算符跟 & 的區(qū)別在于如果對應(yīng)的位中任一個操作數(shù)為1 那么結(jié)果就是1。

          // 1的二進制表示為: 00000000 00000000 00000000 00000001// 3的二進制表示為: 00000000 00000000 00000000 00000011// -----------------------------// 3的二進制表示為: 00000000 00000000 00000000 00000011console.log(1 | 3)     // 3

          有符號右移>>

          有符號的右移操作符由兩個大于號(>>)表示,這個操作符會將數(shù)值向右移動,但 保留符號位(即正負號標記)。有符號的右移操作與左移操作恰好相反,即如果將 64向右移動5位,結(jié)果將變回2:


          var oldValue = 64; // 等于二進制的1000000var newValue = oldValue >> 5; // 等于二進制的10 ,即十進制的2


          同樣,在移位過程中,原數(shù)值中也會出現(xiàn)空位。只不過這次的空位出現(xiàn)在原數(shù)值的 左側(cè)、符號位的右側(cè)(見圖)。而此時ECMAScript會用符號位的值來填充所有 空位,以便得到一個完整的值。




          計算機里的數(shù)是用二進制表示的,最左邊的這一位一般用來表示這個數(shù)是正數(shù)還是負數(shù),這樣的話這個數(shù)就是有符號整數(shù)。如果最左邊這一位不用來表示正負,而是和后面的連在一起表示整數(shù),那么就不能區(qū)分這個數(shù)是正還是負,就只能是正數(shù),這就是無符號整數(shù)。

          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚州老女人BB | 久久精品美女 | 欧美性生交XXXXX | 国产黄片免费播放 | 青青草99 |