国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

簡單的學(xué)習(xí)位運(yùn)算

yankeys / 797人閱讀

摘要:簡單了解位運(yùn)算簡單了解基礎(chǔ)位運(yùn)算符是在數(shù)字底層表示數(shù)字的個(gè)數(shù)位上進(jìn)行操作的。注意位的位置在最右側(cè)。諾,就是這樣的顯示就是這樣的位運(yùn)算符與兩個(gè)都為結(jié)果才為保持?jǐn)?shù)位對齊,用上述規(guī)則然后進(jìn)行與運(yùn)算。

簡單了解位運(yùn)算 簡單了解基礎(chǔ)

位運(yùn)算符是在數(shù)字底層(表示數(shù)字的32個(gè)數(shù)位)上進(jìn)行操作的。

所有整數(shù)字面量都是有符號整數(shù),用31位表示數(shù)值,用第32位表示符號,0表示正數(shù)1表示負(fù)數(shù)。數(shù)值范圍從-(2^31 - 1)到(2^31 - 1)。注意位0的位置在最右側(cè)。

0是所有位為0

-1是所有位為1

-2147483648是除了最左邊為1,其他都是0

2147483647是除了最左邊為0外,其他都是1的整數(shù)。

正數(shù)是以真二進(jìn)制形式存儲的,前 31 位中的每一位都表示 2 的冪,從第 1 位(位 0)開始,表示 2^0,第 2 位(位 1)表示 2^1。沒用到的位用 0 填充,即忽略不計(jì)。

var num = 18;
(num).toString(2); //10010(18 = 2^4+2^1)

負(fù)數(shù)也存儲為二進(jìn)制代碼,不過采用的形式是二進(jìn)制補(bǔ)碼

直接來例子,求-18的補(bǔ)碼
(1)求該數(shù)字非負(fù)版本的二進(jìn)制。這里也就是18的二進(jìn)制(10010)
(2)求二進(jìn)制反碼,也就是1變成0,0變成1(1111 1111 1111 1111 1111 1111 1110 1101)
(3)在反碼的基礎(chǔ)上加一,注意二進(jìn)制里的運(yùn)算1+1=10(1111 1111 1111 1111 1111 1111 1110 1110)

但是呢,ECMAScript并不以這種二進(jìn)制補(bǔ)碼來表示負(fù)數(shù),而是用數(shù)字絕對值的標(biāo)準(zhǔn)二進(jìn)制代碼前面加上負(fù)號的形式輸出。

//諾,就是這樣
var num = -18;
(num).toString(2); //-10010,“-18的顯示就是這樣的”
位運(yùn)算符

與 & 兩個(gè)都為1 結(jié)果才為1

保持?jǐn)?shù)位對齊,用上述規(guī)則然后進(jìn)行與運(yùn)算。

或 | 兩個(gè)都為0時(shí),結(jié)果才為0

保持?jǐn)?shù)位對齊,用上述規(guī)則然后進(jìn)行或運(yùn)算。

非 ~ 0變1,1變0

其實(shí)就是對數(shù)字求負(fù),然后減一

var num = 25;
var num1 = ~num;
num1; //-26

異或 ^ 兩個(gè)相同為0,不同為1

滿足交換律,一個(gè)數(shù)和自己異或的結(jié)果是0,任何數(shù)x與0異或的結(jié)果都是本身x,任何數(shù)x與-1異或的結(jié)果都是-x。

左移 << 各二進(jìn)位全部左移若干位,高位丟棄,右側(cè)低位補(bǔ)0

var old = 2; //10
var new = old << 5; //1000000

右移 >> 各二進(jìn)位全部右移若干位,有符號數(shù),用符號位的值填充這些空位。

一些小技巧

(1)判斷奇偶(貌似很實(shí)用啊)

//一般都是(i % 2 !== 0)來判斷奇數(shù)
if(i & 1) {
    //奇數(shù)需要進(jìn)行的事情
} else {
    //偶數(shù)需要做的事情
}

(2)交換兩個(gè)數(shù)字

一般需要一個(gè)中間變量,

var temp = a;
var a = b;
var b = temp;

可以用位操作符實(shí)現(xiàn)交換不需要中間變量

a ^= b; //a = a ^ b
b ^= a; //b = b ^ a = b ^ a ^ b = a (b = a)
a ^= b; //a = a ^ b = a ^ b ^ a = b;

(3)變換符號

只需要求反后加1即可

function rever (n) {
    return ~n + 1;
} //11 => -11

(4)求絕對值

對于負(fù)數(shù)對其取反后加1來得到正數(shù)。先移位取得符號位i >> 31

var i = a >> 31 //如果a為正數(shù),i為0。如果a為負(fù)數(shù),i為-1
return i == 0 ? a : (~a + 1); //正數(shù)保持不變,負(fù)數(shù)變換符號。

另一種方法
可以通過異或,參考異或的規(guī)則。a與i異或后減i(即加0或者加1)

var i = a >> 31;
return (a ^ i) - i;

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81977.html

相關(guān)文章

  • <Principle Of Computer Organization>學(xué)習(xí)筆記——原碼

    摘要:將補(bǔ)數(shù)的概念用到計(jì)算機(jī)中,便出現(xiàn)了補(bǔ)碼這種機(jī)器數(shù)。通常,從原碼形式入手來求補(bǔ)碼。它與補(bǔ)碼的區(qū)別是末位少加一個(gè),因此很容易從補(bǔ)碼的定義推出反碼的定義。若真值為純小數(shù),它的反碼形式為其中表示符號位。 一、原碼表示法 原碼表示法是一種最簡單的機(jī)器數(shù)表示法,其最高位為符號位,符號位為0時(shí)表示該數(shù)為正,符號位為1時(shí)表示該數(shù)為負(fù),數(shù)值部分與真值相同。若真值為純小數(shù),它的原碼形式為Xs,.X1X2X...

    OnlyMyRailgun 評論0 收藏0
  • <Principle Of Computer Organization>學(xué)習(xí)筆記——原碼

    摘要:將補(bǔ)數(shù)的概念用到計(jì)算機(jī)中,便出現(xiàn)了補(bǔ)碼這種機(jī)器數(shù)。通常,從原碼形式入手來求補(bǔ)碼。它與補(bǔ)碼的區(qū)別是末位少加一個(gè),因此很容易從補(bǔ)碼的定義推出反碼的定義。若真值為純小數(shù),它的反碼形式為其中表示符號位。 一、原碼表示法 原碼表示法是一種最簡單的機(jī)器數(shù)表示法,其最高位為符號位,符號位為0時(shí)表示該數(shù)為正,符號位為1時(shí)表示該數(shù)為負(fù),數(shù)值部分與真值相同。若真值為純小數(shù),它的原碼形式為Xs,.X1X2X...

    hsluoyz 評論0 收藏0
  • 一道看似簡單面試題

    摘要:二進(jìn)制本身就是為這個(gè)數(shù)字而使用的,所以說這道面試題直指二進(jìn)制的使用是沒錯(cuò)的。正負(fù)在二進(jìn)制中,第一位為的是負(fù)數(shù),是正數(shù)。 showImg(https://segmentfault.com/img/bVbd7d0?w=1580&h=732); 前言 使用PHP,給定一個(gè)數(shù),判斷這個(gè)數(shù)是否是二的N次方 這樣看似簡單的一個(gè)面試題, 實(shí)際牽出了很多基礎(chǔ)知識,本章在為大家補(bǔ)習(xí)基礎(chǔ)知識的情況下來解答...

    kid143 評論0 收藏0
  • C語言 運(yùn)算符詳解 (使用二進(jìn)制實(shí)例深入學(xué)習(xí)理解運(yùn)算符使用原理)

    摘要:位運(yùn)算符是對其操作數(shù)按其二進(jìn)制形式逐位進(jìn)行運(yùn)算。接下來我們逐一講解位運(yùn)算符的計(jì)算原理按位與用于清零取某些指定位保位的計(jì)算原理,,結(jié)果上面使用按位與的一段程序運(yùn)行結(jié)果為我們用二進(jìn)制來分析一下它的計(jì)算規(guī)則。 C語言中位運(yùn)算符共有六種 目錄 1.&(按位與) 2. |(按位或) 3.^(按位抑或)...

    1treeS 評論0 收藏0
  • 「干貨」細(xì)說 Javascript 中浮點(diǎn)數(shù)精度丟失問題(內(nèi)附好課推薦)

    摘要:前言最近,朋友問了我這樣一個(gè)問題在中的運(yùn)算結(jié)果,為什么是這樣的雖然我告訴他說,這是由于浮點(diǎn)數(shù)精度問題導(dǎo)致的。由于可以用階碼移動小數(shù)點(diǎn),因此稱為浮點(diǎn)數(shù)。它的實(shí)現(xiàn)遵循標(biāo)準(zhǔn),使用位精度來表示浮點(diǎn)數(shù)。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問了我這樣一個(gè)問題:在 chrome 中的運(yùn)算...

    senntyou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<