雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C++位運(yùn)算符詳解(異或運(yùn)算符和移位運(yùn)算符)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

什么是位運(yùn)算

位運(yùn)算符按二進(jìn)制進(jìn)行運(yùn)算,這些運(yùn)算符只能用于整數(shù)類型的操作。如:char,short,int,long

通過(guò)位運(yùn)算符來(lái)獲取高位值和低位值

int a=0x1234;

int high,low;

high = (a>>8) &0x00ff;

low = a & 0x00ff;

左移運(yùn)算符和右移運(yùn)算符(<<和>>)

左移是將一個(gè)二進(jìn)制數(shù),移動(dòng)若干位,右邊空出的位置用0來(lái)填補(bǔ),高位左移溢出應(yīng)該舍棄該高位。

如:inta = 8, a = 00001000;

a<<2則a =00100000;所以a的值為a*2^2 = 32;

左移過(guò)程中,如果這個(gè)數(shù)被溢出舍棄的高位不包含1,則移完后的值就是這個(gè)值*2^移動(dòng)的位數(shù).

右移是將一個(gè)二進(jìn)制數(shù),右移若干位,左邊空出的位置用0來(lái)填補(bǔ)(如果是無(wú)符號(hào)類型,如果是有符號(hào)類型則根據(jù)操作系統(tǒng)的規(guī)定來(lái)補(bǔ)全。有些操作系統(tǒng)是用符號(hào)位來(lái)填補(bǔ),有些操作系統(tǒng)默認(rèn)是按照0來(lái)填補(bǔ))。

異或(^)

兩個(gè)參加二進(jìn)制運(yùn)算的值相同為0,否則為1

1.  與0異或,保留原來(lái)的值

2.  交換兩個(gè)值,不用臨時(shí)變量

a=3,b=4

a= a^b;

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

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

以上這篇C++位運(yùn)算符詳解(異或運(yùn)算符和移位運(yùn)算符)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。

上一篇:淺談c/c++中使用指針需要注意的問(wèn)題

欄    目:C語(yǔ)言

下一篇:淺談C++中虛函數(shù)實(shí)現(xiàn)原理揭秘

本文標(biāo)題:C++位運(yùn)算符詳解(異或運(yùn)算符和移位運(yùn)算符)

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2261.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有