久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2808|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言位運(yùn)算符在程序中的作用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:94349 發(fā)表于 2015-11-9 21:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
C語(yǔ)言運(yùn)算符主要包括:與、或、異或、取反、左移和右移
一、按位與(&)
如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1,否則為0
應(yīng)用:
1.清零
若想對(duì)一個(gè)存儲(chǔ)單元清零,即使其全部二進(jìn)制位為0,只要找一個(gè)二進(jìn)制數(shù),其中各個(gè)位符合一下條件:
原來(lái)的數(shù)中為1的位,新數(shù)中相應(yīng)位為0。然后使二者進(jìn)行&運(yùn)算,即可達(dá)到清零目的。
a 00101011
b 10010100
c 00000000 //c = a & b
2.取一個(gè)書(shū)中某些指定位
若有一個(gè)整數(shù)a(2byte),想要取其中的低字節(jié),只需要將a與8個(gè)1按位與即可。
a 00101100 10101100
b 00000000 11111111
c 00000000 10101100 //c = a & b
3.保留指定位
a 01010100
b 00111011
c 00010000 //c = a & b

二、按位或(|)
兩個(gè)相應(yīng)的二進(jìn)制位中只要有一個(gè)為1,該位的結(jié)果值為1。借用邏輯學(xué)中或運(yùn)算的話來(lái)說(shuō)就是,一真為真
應(yīng)用:將一個(gè)數(shù)據(jù)的某些位定值為1
a 00110000
b 00001111
c 00111111 //c = a | b

三、按位異或(^)
若參加運(yùn)算的兩個(gè)二進(jìn)制位值相同則為0,否則為1
應(yīng)用:不用臨時(shí)變量,交換兩個(gè)值
計(jì)算前:
a=3,即011(2);b=4,即100(2)
計(jì)算過(guò)程:
a=a ^ b; //即111 = 011 ^ 100
b=b ^ a; //即011 = 100 ^ 111
a=a ^ b; //即100 = 111 ^ 011
計(jì)算后:
a=100(2)即 4 ;b = 011(2)即 3;

四、取反(~)
~是一元運(yùn)算符,用來(lái)對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即將0變1,將1變0

五、左移(<<)
用來(lái)將一個(gè)數(shù)的各二進(jìn)制位全部左移N位,右補(bǔ)0

六、右移(>>)
將一個(gè)數(shù)的各二進(jìn)制位右移N位,移到右端的低位被舍棄,對(duì)于無(wú)符號(hào)數(shù),高位補(bǔ)0

七、原碼,反碼,補(bǔ)碼的基礎(chǔ)概念和計(jì)算方法
1.原碼
原碼就是符號(hào)位加上真值的絕對(duì)值, 即用第一位表示符號(hào), 其余位表示值
比如如果是8位二進(jìn)制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符號(hào)位. 因?yàn)榈谝晃皇欠?hào)位, 所以8位二進(jìn)制數(shù)的取值范圍就是:
[1111 1111 , 0111 1111] 即 [-127 , 127]
原碼是人腦最容易理解和計(jì)算的表示方式。
2.反碼
反碼的表示方法是:
正數(shù)的反碼是其本身
負(fù)數(shù)的反碼是在其原碼的基礎(chǔ)上, 符號(hào)位不變,其余各個(gè)位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
可見(jiàn)如果一個(gè)反碼表示的是負(fù)數(shù), 人腦無(wú)法直觀的看出來(lái)它的數(shù)值. 通常要將其轉(zhuǎn)換成原碼再計(jì)算.
3.補(bǔ)碼
補(bǔ)碼的表示方法是:
正數(shù)的補(bǔ)碼就是其本身
負(fù)數(shù)的補(bǔ)碼是在其原碼的基礎(chǔ)上, 符號(hào)位不變, 其余各位取反, 最后+1. (即在反碼的基礎(chǔ)上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]補(bǔ)
[-1] = [10000001]原 = [11111110]反 = [11111111]補(bǔ)
對(duì)于負(fù)數(shù), 補(bǔ)碼表示方式也是人腦無(wú)法直觀看出其數(shù)值的. 通常也需要轉(zhuǎn)換成原碼在計(jì)算其數(shù)值.
補(bǔ)碼舉例:16位的變量求補(bǔ)碼,比如-266的補(bǔ)碼求法:((266^0xffff)+1) 結(jié)果是0xfef6。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91免费福利视频 | 日本精品裸体写真集在线观看 | 激情欧美一区二区三区中文字幕 | 国产精品一区二区三区久久久 | 国产成人99久久亚洲综合精品 | 国产精品久久国产精品99 gif | 国产精品一二区 | 亚洲综合五月天婷婷 | 国产精品久久久久久久久动漫 | 日韩在线小视频 | 成人a视频片观看免费 | 欧美日本在线观看 | 色吊丝2288sds中文字幕 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 国产不卡一区 | 亚洲精品久久区二区三区蜜桃臀 | 亚洲精品女人久久久 | 欧美精品一区二区三区蜜桃视频 | 国产精品免费观看视频 | 在线久草| 亚洲男人天堂2024 | 日韩视频在线播放 | 99re视频在线 | 五月婷婷激情网 | 天堂视频免费 | 欧美国产日韩一区二区三区 | 成人免费在线电影 | 国产91在线 | 欧美 | 国产视频一区在线观看 | 日韩中文一区二区三区 | 欧美成人激情 | 国产精品一区在线观看 | 6996成人影院网在线播放 | 伊人国产精品 | a级在线观看| 第一福利社区1024 | 国产精品久久二区 | 一区二区三区四区在线 | 国产精品国产a | 日韩国产一区二区三区 | 一级毛片免费 |