『壹』 c語言程序設計書上寫以下代碼讓x只保留最低6位:x = x & ~077
077是8進制數換成二進制是00111111
讓x只保留最低6位:x = x & ~077
不是讓低6位全清0,而是低6位不變動,其它位全清0
『貳』 C語言中按位或,與,非是怎麼用的,怎麼運算
位運算符
C提供了六種位運算運算符;這些運算符可能只允許整型操作數,即char、short、int和long,無論signed或者unsigned。
&
按位AND
|
按位OR
^
按位異或
<<
左移
>>
右移
~
求反(一元運算)
按位與操作&通常用於掩去某些位,比如
n
=
n
&
0177;
使得n中除了低7位的各位為0。
按位或操作|用於打開某些位:
x
=
x
|
SET_ON;
使得x的某些SET_ON與相對的位變為1。
按位異或操作^使得當兩個操作數的某位不一樣時置該位為1,相同時置0。
應該區分位操作符&、|與邏輯操作符&&、||,後者從左到右的評價一個真值。比如,如果x為1、y為2,那麼x
&
y為0,而x
&&
y為1。
移位運算符<<和>>將左側的操作數左移或者右移右操作數給定的數目,右操作數必須非負。因此x
<<
2將x的值向左移動兩位,用0填充空位;這相當於乘4。右移一個無符號數會用0進行填充。右移一個帶符號數在某些機器上會用符號位進行填充(「算數移位」)而在其他機器上會用0進行填充(「邏輯移位」)。
單目運算符~對一個整數求反;即將每一個1的位變為0,或者相反。比如
x
=
x
&
~077
將x的後六位置0。注意x
&
~077的值取決於字長,因此比如如果假設x是16位數那麼就是x
&
0177700。這種簡易型式並不會造成額外開銷,因為~077是一個常數表達式,可以在編譯階段被計算。
作為一個使用位操作的實例,考慮函數getbits(x,p,n)。它返回以p位置開始的n位x值。我們假設0位在最右邊,n和p是正數。例如,getbits(x,4,3)返回右面的4、3、2位。
/*
getbits:
返回從位置p開始的n位
*/
unsigned
getbits(unsigned
x,
int
p,
int
n)
{
return
(x
>>
(p+1-n))
&
~(~0
<<
n);
}
表達式x
>>
(p+1-n)將需要的域移動到字的右側。~0是全1;將其左移n為並在最右側填入0;用~使得最右側n個1成為掩碼。
『叄』 在c語言中(x)是什麼意思啊
每個表達式都有值 (x)本身是表達式 其值是x的值
『肆』 C語言中,x,是什麼意思
在c語言中,~x代表的意思是按位取反的意思。
使用~進行按位取反時,將某個數x的二進制的每一個bit取反即可得到~x的值。
如~0x37,即~(0011
0111),得到的答案應該為:
~0x37=~(0011
0111)=(1100
1000)=0xc8。
需要注意的是,在c語言中,還有一個邏輯取反符號「!」
「!x」的返回值只有0和1兩種。如果x為0,則!x=1
如果x不等於0.則!x的返回值為0。
『伍』 C語言中x!是什麼意思
是一個控制語句,直到x=0才停止循環,!x是求反的意思,只要x值是零才成立。
!x的意思就是x!=0
當X=0時執行while循環
!即取反,當X!=0時不執行
!=組合在一起是邏輯運算符「不等於」
!x--這個表示對x作「非」運算。
(5)c語言中x077表示什麼擴展閱讀
C語言運算符列表:
1、優先順序1級
結合方向左結合(自左至右)
()圓括弧
[]下標運算符
->指向結構體成員運算符
.結構體成員運算符(請注意它是一個實心圓點)
2、優先順序2級
結合方向右結合(自右至左)單目運算符
!邏輯非運算符
~按位取反運算符
++自增運算符
--自減運算符
-負號運算符
(類型)類型轉換運算符
*指針運算符
&地址與運算符
sizeof長度運算符
參考資料來源:網路—c語言運算符號
『陸』 C語言中!X什麼意思
在C語言中,~x代表的意思是按位取反的意思。
將x按位取反
比如x = 10101010b。
那麼~x = 01010101b。
還要注意,在C語言中,還有邏輯取反符號「!」,「!x」的返回值只有0和1兩種。如果x為0,則!x=1。如果x不等於0.則!x的返回值為0。
(6)c語言中x077表示什麼擴展閱讀:
c語言關鍵字。
signed 聲明有符號類型變數
unsigned 聲明無符號類型變數
struct 聲明結構體變數
union 聲明聯合類型
enum 聲明枚舉類型
switch 用於開關語句
case 開關語句分支
default 開關語句中的「其他」分支
auto 聲明自動變數,預設時編譯器默認為此
const 聲明只讀變數
static 聲明靜態變數
register 聲明寄存器變數
『柒』 c語言中char a='\077'占含多少字元
\077是八進制數,對應ASCII碼表中的問號字元,就是?
因此含1個字元,佔1個位元組。
『捌』 c語言中!x是什麼意思
!是C++的邏輯運算符,意思是「非」。!x的意思:對於一個命題x如果將其否定,就得到一個新命題,記作!x,讀作「非x」。
運算符是說明特定操作的符號 ,它是構造C語言表達式的工具 。C語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運算符處理。除了常見的三大類,算術運算符、關系運算符與邏輯運算符之外,還有一些用於完成特殊任務的運算符,比如位運算符。
(8)c語言中x077表示什麼擴展閱讀:
常用的C語言邏輯運算符有三種,包括與(&&)、或(||)、非(!)。
在c語言,!x 是 對x 的「邏輯非」運算。
當 x 不等於0 時,x 為真,!x 就為 假。
當 x 等於0 時,x 為假,!x 就為 真。
c語言里 沒有 x! , 可以 有類似 x!=0 形式。 != 是 「不等於」。
『玖』 C語言 數制轉換問題
077為(63),0111為(73),0xab為(171)
"0"(數字)開頭是八進制,"0X"(數字"0"和字母"x")開頭是十六進制,什麼都沒有是十進制,0111如果是二進制,題目會特別說明或者能明顯看出來
『拾』 !x在c語言中是什麼意思
是一個控制語句,直到x=0才停止循環,!x是求反的意思,只要x值是零才成立。
!x的意思就是x!=0
當X=0時執行while循環
!即取反,當X!=0時不執行
!=組合在一起是邏輯運算符「不等於」
!x--這個表示對x作「非」運算。
(10)c語言中x077表示什麼擴展閱讀
C語言運算符列表:
1、優先順序1級
結合方向左結合(自左至右)
()圓括弧
[]下標運算符
->指向結構體成員運算符
.結構體成員運算符(請注意它是一個實心圓點)
2、優先順序2級
結合方向右結合(自右至左)單目運算符
!邏輯非運算符
~按位取反運算符
++自增運算符
--自減運算符
-負號運算符
(類型)類型轉換運算符
*指針運算符
&地址與運算符
sizeof長度運算符