最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript按位運算符的應用簡析

 更新時間:2014年02月04日 16:53:51   作者:  
下面根據(jù)自己的認知簡單的談一下js中的位操作使用(同樣適用于其他語言),如果有錯誤,歡迎指正

大多數(shù)語言都提供了按位運算符,按位運算符在c,c++等語言中運用廣泛,而在JS,AS等腳本語言中則沒有太多的應用例子,有時候,適當?shù)氖褂冒次贿\算符會取得很好的效果。
下面根據(jù)自己的認知簡單的談一下js中的位操作使用(同樣適用于其他語言),如果有錯誤,歡迎指正。

按位運算符是把操作數(shù)看作一系列單獨的位,而不是一個數(shù)字值。所以在這之前,不得不提到什么是“位”:
數(shù)值或字符在內(nèi)存內(nèi)都是被存儲為0和1的序列,每個0和1被稱之為1個位,比如說10進制數(shù)據(jù)2在計算機內(nèi)被存儲為 0 0 0 0 0 0 1 0,當我們將內(nèi)存內(nèi)的位值改變之后,這個值代表的意義也就變了,比如把2前移動一位, 現(xiàn)在存儲單元里面變成了0 0 0 0 0 1 0 0,這個值表示的是十進制的4,這也就是按位操作符的運算原理。

按位運算符有6個
& 按位與
|按位或
^按位異或
~取反
>>右移
<<左移


1 & 運算符
&是二元運算符,它以特定的方式的方式組合操作數(shù)中對應的位 如果對應的位都為1,那么結(jié)果就是1, 如果任意一個位是0 則結(jié)果就是0
1 & 3的結(jié)果為1
來看看它的怎么運行的:
1的二進制表示為 0 0 0 0 0 0 1
3的二進制表示為 0 0 0 0 0 1 1
根據(jù) & 的規(guī)則 得到的結(jié)果為 0 0 0 0 0 0 0 1,十進制表示就是1

只要任何一位是0 &運算的結(jié)果就是 0,所以可以用&把某個變量不必要的位設為0, 比如某個變量的二進制表示為 0 1 0 0 1 0 0 1, 我想保留低4位,消除高4位 用 & 0x0F就可以了(住:0x0F為16進制表示法,對應的二進制為 0 0 0 0 1 1 1 1),這個特性有個很重要的應用,在后面會提到。

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

3 ^ 運算符
^運算符跟 | 類似,但有一點不同的是 如果兩個操作位都為1的話,結(jié)果產(chǎn)生0
0 1 0 0 0 0 0 1
0 1 0 1 1 0 1 0
產(chǎn)生 0 0 0 1 1 0 1 1

4 ~ 運算符
~是對位求反 1變0, 0變1

5 移位運算符移位運算符把位按指定的值向左或向右移動
<< 向左移動 而 >> 向右移動,超過的位將丟失,而空出的位則補0

如 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1(十進制16387) 向左移動兩位將變成
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 (十進制12)
向右移動兩位則是
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0(十進制4096)


下面介紹一些具體的應用
前面提到2向前移動1位變成4 利用這個特性可以做乘法運算
2 << 1 =4
3 << 1 = 6
4 << 1 = 8
同理 >> 則可以做除法運算


任何小數(shù) 把它 >> 0可以取整
如3.14159 >> 0 = 3;

^運算服有個神奇的特性
如以下代碼

復制代碼 代碼如下:

<script>
var n1 = 3;
var n2 = 4;
n1 ^= n2;
n2 ^= n1;
n1 ^= n2;
</script>

相關文章

  • js將json格式內(nèi)容轉(zhuǎn)換成對象的方法

    js將json格式內(nèi)容轉(zhuǎn)換成對象的方法

    這篇文章介紹了js將json格式內(nèi)容轉(zhuǎn)換成對象的方法,有需要的朋友可以參考一下
    2013-11-11
  • 微信小程序?qū)崿F(xiàn)電子簽名功能

    微信小程序?qū)崿F(xiàn)電子簽名功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)電子簽名功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • JavaScript實現(xiàn)平滑滾動效果

    JavaScript實現(xiàn)平滑滾動效果

    頁面平滑滾動是網(wǎng)頁一種常見的效果,平滑滾動的原理其實很簡單,無非就是讓頁面一種肉眼可見的速度從當前位置滾動到指定位置,那如何用原生的JS實現(xiàn)這也效果呢?本文給大家介紹了JavaScript實現(xiàn)平滑滾動效果,需要的朋友可以參考下
    2024-06-06
  • 微信小程序云開發(fā)使用方法新手初體驗

    微信小程序云開發(fā)使用方法新手初體驗

    微信小程序云開發(fā)使用方法新手初體驗,開發(fā)者可以使用云開發(fā)開發(fā)微信小程序、小游戲,無需搭建服務器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • JavaScript中如何調(diào)用Java方法

    JavaScript中如何調(diào)用Java方法

    這篇文章主要介紹了JavaScript中如何調(diào)用Java方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-09-09
  • 使用JavaScript字符串解決回文數(shù)的方案詳解

    使用JavaScript字符串解決回文數(shù)的方案詳解

    這篇文章主要介紹了使用JavaScript字符串解決回文數(shù)的方案,JavaScript中的字符串是一種數(shù)據(jù)類型,用于表示文本數(shù)據(jù),字符串可以包含任意字符序列,包括字母、數(shù)字、符號和空格,靈活掌握字符串的解決問題思想,巧用字符串解決回文數(shù),需要的朋友可以參考下
    2024-05-05
  • 一些javascript一些題目的解析

    一些javascript一些題目的解析

    今天做了群友發(fā)的一個鏈接, 關于js 的一些題目的. 這樣的題目常常有很多陷阱在里面,等著別人去踩. 很不幸,灑家踩了, 還蠻悲劇.
    2010-12-12
  • template.js前端模板引擎使用詳解

    template.js前端模板引擎使用詳解

    本篇文章主要介紹了template.js前端模板引擎使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • javascript中parentNode,childNodes,children的應用詳解

    javascript中parentNode,childNodes,children的應用詳解

    本篇文章是對javascript中parentNode,childNodes,children的應用進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • 微信小程序繪制半圓(弧形)進度條

    微信小程序繪制半圓(弧形)進度條

    這篇文章主要為大家詳細介紹了微信小程序繪制半圓(弧形)進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論

盖州市| 且末县| 基隆市| 凉山| 江口县| 金坛市| 桐柏县| 福鼎市| 德格县| 咸宁市| 交城县| 托里县| 文昌市| 叶城县| 深泽县| 永济市| 涪陵区| 丰都县| 攀枝花市| 宜宾县| 泾源县| 青神县| 扎兰屯市| 连州市| 微博| 固镇县| 鄂尔多斯市| 巩义市| 克山县| 鞍山市| 齐齐哈尔市| 光泽县| 文化| 鄂托克旗| 乐山市| 革吉县| 河西区| 定远县| 建瓯市| 格尔木市| 潞城市|