国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php 位運(yùn)算中的按位取反到底什么意思?

2020-03-22 18:42:30
字體:
供稿:網(wǎng)友
先看代碼:

$a=8;$b=~$a; //按位取反echo "/$a=".$a."<br>";echo "/$b=".$b;

輸出結(jié)果:

$a=8$b=-9

結(jié)果跟我所想的不一樣啊,因?yàn)樵赑HP中文手冊(cè)中說: ~ $a Not(按位非) 將 $a 中為 0 的位設(shè)為 1,反之亦然。 我只是簡(jiǎn)單的理解為:0變1,1變0。原來按位取反以十進(jìn)制輸出并不是簡(jiǎn)單理解成這樣。

首先要知道,在計(jì)算機(jī)中,負(fù)數(shù)以其正值的補(bǔ)碼形式表達(dá)。
這樣我們就要知道三個(gè)概念了,原碼,反碼和補(bǔ)碼。
原碼:一個(gè)整數(shù),按照絕對(duì)值大小轉(zhuǎn)換成的二進(jìn)制數(shù),稱為原碼。
反碼:將二進(jìn)制數(shù)按位取反,所得的新二進(jìn)制數(shù)稱為原二進(jìn)制數(shù)的反碼。取反操作指:1變0, 0變1。
補(bǔ)碼:反碼加1稱為補(bǔ)碼。也就是說,要得到一個(gè)數(shù)的補(bǔ)碼,先得到反碼,然后將反碼加上1,所得數(shù)稱為補(bǔ)碼。
正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1

由上所知,8按位取反以十進(jìn)制輸出的過程:
1、8的原碼為:0000 0000 0000 0000 0000 0000 0000 1000
2、按位取反:1111 1111 1111 1111 1111 1111 1111 0111;由于最前面一位為1,所以為負(fù)數(shù)。即即按位取反后得的為負(fù)數(shù)
下面以十進(jìn)制輸出:負(fù)數(shù)以其正值的補(bǔ)碼形式表達(dá):
3、2步所得的數(shù)(是其正為取反,符號(hào)不變,最高位還是為1)取反:1000 0000 0000 0000 0000 0000 000 1000
4、反碼加1:1000 0000 0000 0000 0000 0000 000 1001;這樣就得負(fù)數(shù)的正值的補(bǔ)碼形式。也就是-9了。

再舉一例子啊。如2按位取反。
0000 0000 0000 0000 0000 0000 0000 0010(原碼)
1111 1111 1111 1111 1111 1111 1111 1101(按位取反)
1000 0000 0000 0000 0000 0000 000 0010 (正值的反碼,符號(hào)不變)
1000 0000 0000 0000 0000 0000 000 0011 (加1,結(jié)果為-3)
代碼和結(jié)果如下:

<?php$a=2;$b=~$a;  //按位取反echo "/$a=".$a."<br>";echo "/$b=".$b;?>

結(jié)果:

$a=2$b=-3

以上就是php 位運(yùn)算中的按位取反到底什么意思?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌拉特前旗| 个旧市| 邵阳县| 常熟市| 崇阳县| 岑巩县| 陇南市| 金阳县| 工布江达县| 塘沽区| 吴旗县| 灌云县| 若尔盖县| 忻州市| 定南县| 孝感市| 富宁县| 饶平县| 临洮县| 枣阳市| 蕲春县| 邢台县| 潼关县| 建始县| 高雄县| 富源县| 靖江市| 肃南| 绵竹市| 陵水| 巩义市| 甘孜县| 拜城县| 抚宁县| 卓资县| 海盐县| 武定县| 固阳县| 莱芜市| 顺平县| 元朗区|