精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

你覺得用不上的位運算里,隱藏著 CPU 實現的秘密

商務辦公
我們學 JS 的時候都會了解下位運算,在 React、Typescript 等源碼中也頻繁見到位運算的蹤影,但在業務代碼中從來不會這么寫,它好像離我們很遙遠。

[[428142]]

本文轉載自微信公眾號「神光的編程秘籍」,作者神說要有光zxg 。轉載本文請聯系神光的編程秘籍公眾號。

我們學 JS 的時候都會了解下位運算,在 React、Typescript 等源碼中也頻繁見到位運算的蹤影,但在業務代碼中從來不會這么寫,它好像離我們很遙遠。

但是位運算真的遙遠么?

其實并不是。你寫的所有代碼最終都會轉為位運算,位運算里隱藏著 CPU 實現的秘密。

下面我們就來談一下位運算與 CPU 的關系以及位運算在代碼中的應用。

從晶體管造 CPU

晶體管

先來了解下晶體管。

下面這個是三極管,它就是一種晶體管,特性是從一端通電,另外兩端的電流就可以通過,不通電,另外兩端的電流就不能通過。

這特性不就是一個開關么?

它和下面這個東西差不多,只不過不需要手動開關,而是通過通電來控制開關。

開和關,就是 1 和 0。計算機世界的組成單元 1 和 0 就是這么實現的。

邏輯電路

有了 01 就可以構成邏輯電路了,也就是與門、或門、非門、異或門等構成的電路。

它們的電路符號是這樣的:

與門:

或門:

非門:

異或門:

它們在 JS 中怎么表示呢?

與 &

或 |

非 ~

異或 ^

它們就是通過三極管構成的邏輯電路的基本單元,能夠實現基于 0 1 的邏輯。

什么邏輯呢?

1 & 0 為 0

1 | 0 為 1

~1 為 0

0 ^ 0 為 0

與或非大家比較熟悉了,這里講一下異或:

異或是相同為 0,不相同為 1,也就是一個 0 和一個 1 才會得出 1,否則為 0

運算器

我們了解了位運算是什么,邏輯電路是什么,那有了邏輯電路能做什么呢?

能做的可多了,CPU 不就是一個大邏輯電路么,它就是建立在位運算基礎上的。

比如我們實現下 ALU 運算器:

首先實現加法:

加法在二進制里面就是異或,不信我們來試一下:

1 和 0, 0 和 1 想加是 1 ,而 0 和 0,1 和 1 相加都為 0,這不就是異或么。

當然,還要處理進位,進位可以通過與運算得到,比如上面那四個,只有 1 和 1 相與才為 1,否則都為0,這就算出了進位。

能夠按位相加和進位,就能實現加法器。

  1. function add(a, b) { 
  2.     let sum = a; 
  3.     let carry = b; 
  4.  
  5.     let temp
  6.     while(carry != 0) { 
  7.         temp = sum
  8.         sum = temp ^ carry; 
  9.         carry = (temp & carry) << 1; 
  10.     } 
  11.  
  12.     return sum

測試一下加法器:

注意,上面的與和異或不都有邏輯電路么,那用電路實現上面這段代碼不就是硬件實現的加法器么?

有了加法,很容易就可以得到減法器:

  1. function subtract(a, b) { 
  2.     var substrahend= add(~b, 1) 
  3.     var sub= add(a, substrahend) 
  4.  
  5.     return sub 

把被減數變為相反數,再和被減數相加不就是減法么?

至于這里為什么是取反加一,就涉及到原碼反碼補碼了,

因為 1 對應 -1,而 0 呢?并沒有 -0,所以就少了一位。所以要加一才能對上,也就是補碼的“補”的意思,補上沒有 -0 導致的缺少的那個編碼。

實現了加法器、減法器之后,乘法和除法也就有了,因為乘法不就是多個加么?除法不就是多個減么?

就這樣,我們從位運算實現了加減乘除。

對應到硬件上呢?就是我們通過三極管實現了邏輯電路,然后又用邏輯電路實現了加減乘除。

CPU

上面那個東西在 CPU 里叫做 ALU,算術邏輯單元,可以做邏輯運算、算術運算。

而且基于三極管還可以做到存儲 0 1 等目的,構成寄存器。

有了這些東西我們就可以實現一個 CPU。

神不神奇,通過晶體管和位運算,我們就能把 CPU 造出來,雖然也就需要數億個晶體管吧。

當然,我們只了解這些意義不大,還要了解位運算的應用。

位運算的應用

文件系統

看過我前面一篇文件系統實現原理文章的小伙伴會知道,硬盤會劃分為數據塊來使用,一個文件就是由多個數據塊構成的:

文件會通過一個叫 inode 的結構來記錄用到了哪幾個數據塊:

那我想存文件的時候,怎么知道哪些塊可用呢?

一個塊只有空閑和非空閑兩種狀態,一個位 0 和 1 就可以保存,所以會用位圖這種結構來記錄。

比如當我存儲圖片占用了 2 和 4 號塊的時候,就會把位圖的對應位置置為 1,否則為 0。那么當我需要存儲文件的時候,從位圖中查一下就知道哪些數據塊可用了。

通過位圖記錄狀態,通過位運算來判斷狀態。占用空間小,運算效率高。

操作系統級別都是這么干的,很多追求性能的庫也都這么干。

React 和 Typescript

在 React 和 Typescript 等源碼中,經常會見到一個叫 flags 的東西,flags 就和我上面說的位圖差不多,通過一個位標識一個狀態。

比如下面這段 React 的源碼:

這就是判斷了 這個 fiberNode 是否有 Placement 或者 Hydrating 的狀態,如果有就 xxx。

再來看 Typescript 的源碼中的這段代碼:

~ 是取相反狀態,再 & 就是判斷是否沒有這個狀態,然后通過 | 設置到 flags 里面,意思就是這個 flags 加上沒有 xx 狀態的標識。

業務代碼

操作系統、優秀的庫中都用到了位運算,因為它們性能高,直接用電路算,存儲空間也小,那是不是我們代碼中可以用呢?

可以是可以,但是業務代碼追求的更多是可維護性,如果你寫出上面那種 typescript 的源碼那樣的位運算,后面接手的人不想打死你才怪。

總結

CPU 通過晶體管實現了電路的開關,也就是 0 和 1,然后組成了與或非異或門,進一步構成邏輯電路,邏輯電路可以實現加減乘除,構成 ALU,加上寄存器等部件就構成了 CPU。

所以位運算是直接用電路算,效率最高,其他的運算最終也會轉為位運算。

操作系統文件系統的設計就用到了位圖和位運算,React 和 Typescript 源碼中也大量用到 flags。但這不意味著業務代碼就可以用,因為業務代碼還是可維護性更重要一些。

 

位運算里面隱藏著 CPU 實現的秘密,并不只是一個炫技的手段那么簡單。

 

責任編輯:武曉燕 來源: 神光的編程秘籍
相關推薦

2017-12-26 15:38:18

iMac隱藏秘密

2013-11-04 17:02:40

Windows 8.1隱藏功能

2022-09-22 13:56:56

線程Java

2019-11-12 13:43:05

云計算IaaS技術

2019-02-18 08:17:40

工業物聯網IIOT物聯網

2021-03-18 11:09:13

比特幣加密貨幣區塊鏈

2015-12-09 16:21:41

2021-10-10 15:01:09

Go 源碼Github

2019-09-25 17:22:31

戴爾

2015-10-26 09:32:16

春雨醫生微信傳播鏈

2021-04-27 11:15:51

Java 8ConcurrentHBUG

2015-07-30 06:19:48

Linux云計算原生計算基金會

2024-08-08 19:13:19

2015-10-27 09:09:44

2015-11-19 10:59:00

2022-02-07 15:24:53

iOS蘋果系統

2021-08-04 10:14:15

云計算多云云架構

2021-11-09 23:14:01

手機飛行模式功能

2020-12-11 06:24:09

數字貨幣支付寶微信
點贊
收藏

51CTO技術棧公眾號

国产美女激情视频| 这里只有精品在线观看视频 | 男女男精品视频网| 日韩在线免费av| 乳色吐息在线观看| 裤袜国产欧美精品一区| 日韩毛片高清在线播放| 国产成人精品自拍| 久久这里只有精品9| 一区二区三区四区在线观看国产日韩 | 久久天天躁狠狠躁夜夜躁| 高清中文字幕mv的电影| 123成人网| 亚洲午夜免费福利视频| 四虎一区二区| 天堂中文字幕av| 九九热在线视频观看这里只有精品| 欧美精品videos另类日本| 性猛交ⅹxxx富婆video| 超碰一区二区三区| 欧美日韩免费不卡视频一区二区三区 | 狠狠综合久久| 中文字幕亚洲一区二区三区| 超碰97在线资源站| 狂野欧美xxxx韩国少妇| 欧美亚洲高清一区二区三区不卡| 精品久久久无码人妻字幂| 91高清在线| 91在线小视频| aa日韩免费精品视频一| 中文字幕丰满人伦在线| 午夜亚洲视频| 久久久久久国产精品美女| 99成人在线观看| 欧美日韩伦理| 亚洲欧美在线一区| 久久人妻少妇嫩草av无码专区| 国产精一区二区| 欧美图区在线视频| 37pao成人国产永久免费视频| 麻豆蜜桃在线| 亚洲免费高清视频在线| 在线一区日本视频| 成人精品一区二区三区免费| 久久亚洲综合色| 国产伦精品一区二区三| 国产黄色片网站| 九九在线精品视频| 91精品久久久久久久久不口人| 自拍偷拍18p| 鲁大师影院一区二区三区| 91黄色8090| 日本熟妇乱子伦xxxx| 黄色免费成人| 久久久久久久爱| 国产亚洲精品久久久久久打不开| 中文字幕乱码亚洲无线精品一区| 日韩在线观看免费高清| 永久免费未视频| 香蕉久久网站| 久久伊人精品天天| 黄页网站免费观看| 国产精品v欧美精品v日本精品动漫| 欧美精品一二区| 国产一级特黄a高潮片| 一区视频在线| 欧美亚洲成人网| 在线精品免费视| 天堂一区二区在线| 国产精品欧美日韩久久| 一区二区日韩视频| 国产一区二区成人久久免费影院 | 欧美日韩国产成人在线观看| 九九久久免费视频| 亚洲精品欧美| 国产精品99久久久久久久久| 一区二区三区播放| 国产精品香蕉一区二区三区| 成人看片在线| 水莓100国产免费av在线播放| 久久久噜噜噜久久中文字幕色伊伊| 日本在线一区| av中文字幕在线观看| 亚洲影院久久精品| 99999精品视频| 福利一区二区免费视频| 欧美一级二级三级乱码| 中国极品少妇videossexhd| 精品一区在线| 久久国内精品一国内精品| 麻豆chinese极品少妇| 国产日韩一区二区三区在线| 国产欧美韩国高清| 丰满肉肉bbwwbbww| 久久久噜噜噜久久人人看 | 999视频在线观看| 少妇一区二区三区四区| 国产精品麻豆欧美日韩ww| 国产一区二区三区小说| 精品裸体bbb| 精品日韩欧美一区二区| 色一情一交一乱一区二区三区 | 国产日韩高清在线| 激情图片qvod| 日韩精品一区二区三区| 欧美一级二级三级乱码| 久久美女免费视频| 午夜日韩激情| 国产精品久久久久久久久久尿| 午夜精品久久久久久久99| 91丨九色丨蝌蚪富婆spa| 午夜啪啪免费视频| 日本成人三级电影| 精品国产乱码久久久久久闺蜜| 老熟妇一区二区| 亚洲国产日本| 国产欧美最新羞羞视频在线观看| 内射无码专区久久亚洲| 国产精品免费视频观看| www.亚洲天堂网| baoyu135国产精品免费| 色播久久人人爽人人爽人人片视av| 91精品国产高潮对白| 国产精品一区三区| 五月天亚洲综合| 亚洲国产成人二区| 亚洲成人激情在线观看| 亚洲色婷婷一区二区三区| 日韩av高清在线观看| 久久久久久高清| 国产极品人妖在线观看| 91精品欧美福利在线观看| 18禁裸乳无遮挡啪啪无码免费| 激情丁香综合| 成人看片视频| 成人免费看片| 91精品国产综合久久国产大片| 我不卡一区二区| 麻豆亚洲精品| 麻豆成人av| 热色播在线视频| 精品1区2区在线观看| 麻豆国产尤物av尤物在线观看| 久久er精品视频| 亚洲美女搞黄| 久久国产三级| www.精品av.com| 一级黄色大毛片| 国产精品国产三级国产| 久久人人爽av| 雨宫琴音一区二区三区| 91中文在线观看| 国产三区视频在线观看| 欧美一区二区三区免费视频| 久久国产波多野结衣| 狠狠色狠狠色合久久伊人| 中文字幕在线观看一区二区三区| 成人黄色91| 欧美裸体男粗大视频在线观看| 国产女同91疯狂高潮互磨| 亚洲日本在线观看| 在线观看欧美一区二区| 国产一区激情| 国产日韩欧美二区| 中文在线аv在线| 国产亚洲免费的视频看| 怡红院男人天堂| 亚洲日本电影在线| 国产精品一区二区无码对白| 一区二区日韩免费看| 日本高清不卡三区| 日韩美女在线| 韩国欧美亚洲国产| 蜜桃免费在线| 欧美精品精品一区| 精品少妇theporn| 久久先锋影音av| 午夜久久久精品| 欧美大片一区| 麻豆成人av| 999精品视频在线观看| 欧美激情亚洲视频| 免费在线国产| 日韩美一区二区三区| 国产 日韩 欧美 在线| 国产精品欧美一级免费| 亚洲成a人无码| 视频一区免费在线观看| 福利在线小视频| 欧美a级网站| 成人激情视频网| 擼擼色在线看观看免费| 日韩在线视频免费观看| 亚洲AV无码一区二区三区少妇| 欧美日韩国产精品一区二区三区四区 | 九色在线视频观看| 99九九热只有国产精品| 国产伦精品一区二区三区视频孕妇| av日韩亚洲| 蜜臀久久99精品久久久久久宅男 | 久久中文资源| 国产免费一区二区三区香蕉精| 欧美v亚洲v| 中文字幕成人精品久久不卡| 三级小视频在线观看| 欧美日韩国产中文| 国产精品黄色大片| 亚洲欧洲日产国产综合网| 在线免费观看成年人视频| 国产一区二区三区蝌蚪| 午夜免费精品视频| 日韩一区二区久久| 粉嫩av一区二区三区天美传媒| 精品日韩一区| 精品国产免费人成电影在线观...| 久久久久毛片| 国产综合网站| 日韩黄色高清视频| 国产极品久久久| 欧美少妇xxx| 香蕉影院在线观看| 亚洲一区二区偷拍精品| 亚洲精品电影院| 久久九九久久九九| 免费观看一级一片| 成人在线综合网| 一级黄色免费毛片| 久久精品av麻豆的观看方式| 欧美精品一区二区三区免费播放| 韩国在线视频一区| 国产精品啪啪啪视频| 91一区在线| 性欧美大战久久久久久久免费观看| 欧美三级电影在线| 国产免费一区二区三区| 日本一区二区三区电影免费观看| 国产一区二区色| 国产精品久久久久久妇女| 国产成人精品免高潮在线观看 | 男生女生差差差的视频在线观看| 欧美成人女星排名| 国产肥老妇视频| 欧美一级理论片| av一级黄色片| 精品久久久久久久久久久久包黑料 | 欧美一级艳片视频免费观看| 青青国产在线视频| 在线精品视频一区二区三四| 欧美日韩综合一区二区三区| 色婷婷综合久久久久中文一区二区| 97超碰人人干| 高跟丝袜一区二区三区| www.日本精品| 色女孩综合影院| 懂色av蜜臀av粉嫩av喷吹| 在线观看国产一区二区| 最新国产中文字幕| 欧美日韩成人综合| 99免费在线视频| 精品伦理精品一区| 五月婷婷在线观看视频| 亚洲欧美日韩国产中文专区| 国产黄色在线播放| 色噜噜狠狠狠综合曰曰曰88av| 免费黄色网址在线观看| 美女精品在线| 午夜精品亚洲一区二区三区嫩草| 欧美日韩精品在线一区| 精品久久免费观看| 你懂的亚洲视频| 久久黄色片视频| 日韩激情一二三区| 日韩肉感妇bbwbbwbbw| 韩国欧美一区二区| 免费黄色a级片| 2020国产精品久久精品美国| 亚洲精品色午夜无码专区日韩| 国产精品美女久久久久久2018 | 午夜福利一区二区三区| 国产香蕉一区二区三区在线视频| 日本中文字幕在线观看| 理论片在线不卡免费观看| 91桃色在线观看| 国产精品最新在线观看| 成人h动漫免费观看网站| 久久国产精品精品国产色婷婷| 精品国内自产拍在线观看视频 | 99精品免费| 日日噜噜噜噜久久久精品毛片| 久久99精品久久久久久动态图| 日韩黄色一区二区| 国产欧美精品一区二区色综合朱莉| 日韩一级片大全| 色综合天天狠狠| 99精品在线视频观看| 亚洲精选在线观看| 在线观看的网站你懂的| 日韩免费观看网站| 亚洲大奶少妇| 色噜噜狠狠色综合网| 激情综合在线| 五月婷婷之婷婷| 久久综合色之久久综合| 欧洲猛交xxxx乱大交3| 在线观看亚洲专区| 色欲av伊人久久大香线蕉影院| 一道本无吗dⅴd在线播放一区| 黄色的视频在线观看| 国产欧美一区二区三区视频| 亚洲丁香日韩| 国产精品视频网站在线观看| 美女视频免费一区| 4444欧美成人kkkk| www在线免费观看视频| 日本精品视频在线播放| 中文字幕av一区二区三区四区| 亚洲精品中文字幕乱码三区不卡| 在线视频精品| 欧美午夜精品一区二区| 中文字幕亚洲视频| 波多野结衣人妻| 亚洲美女在线视频| 国产va在线视频| 懂色av一区二区三区在线播放| 91免费精品| 日韩一级免费片| 国产视频一区二区三区在线观看| www.国产成人| 亚洲大胆人体在线| 污污网站在线观看| 亚洲永久免费观看| 午夜久久免费观看| 国产成人美女视频| 国产精品热久久久久夜色精品三区| 综合网在线观看| 亚洲女同性videos| 乡村艳史在线观看| 久久伦理网站| 日韩视频久久| 极品白嫩丰满美女无套| 亚洲福利视频导航| 日韩一区免费视频| 97免费视频在线播放| 久久99国产精品久久99大师| 国产一线二线三线女| 成人国产精品免费网站| 久久精品免费在线| 精品日韩99亚洲| 日韩精品极品| 欧美二区三区在线| 久久综合图片| 久久久国产一级片| 欧美精品日日鲁夜夜添| 国产婷婷视频在线| 7777精品久久久大香线蕉小说| 欧美日本三区| 北京富婆泄欲对白| 欧美性感美女h网站在线观看免费| 亚洲av成人精品一区二区三区在线播放| 性欧美视频videos6一9| 亚洲精品进入| 国产视频1区2区3区| 亚洲视频在线一区| 人妻妺妺窝人体色www聚色窝| 国产老妇另类xxxxx| 国产日韩一区二区在线| 国产午夜精品美女毛片视频| 国产成人自拍偷拍| 久久精品视频中文字幕| 深夜福利一区| 日本欧美黄色片| 国产欧美一区视频| 国产不卡av在线播放| 久久久久久久999精品视频| 中文有码一区| 91精品国产三级| 亚欧色一区w666天堂| 国产中文字幕在线播放| 91精品啪在线观看麻豆免费| 欧美欧美天天天天操| 最近日本中文字幕| 欧美性感一类影片在线播放| sm国产在线调教视频| 久久99国产精品| 久久精品久久久精品美女| 免费在线观看黄视频| 亚洲人免费视频| 久久久久久爱| 国产一区视频免费观看| 亚洲人成精品久久久久久 | 亚洲色图在线观看| 国内精品视频| 狠狠爱免费视频| 亚洲女女做受ⅹxx高潮| 日韩专区一区二区| 91久久久精品| 久久一区中文字幕| 久草视频免费在线| 中文字幕日韩欧美| 偷拍亚洲精品|