1樓:
樓上正確,但是說的太複雜。
其實實際結果就是變數x的最後一位(二進位制的個位),其它二進位制位都是0的乙個整數。
2樓:逢淑英毛戊
從命令的角度講,是將x的每一bit(2進製中的1和0都佔乙個bit)與0001的每一bit做與運算.
"&"是"與運算"的意思,1&1=1,其他情況(1&0,0&1,0&0)都=0.
從邏輯的角度來講,這個命令就是取x的最左邊一位.例如x是0011,x&1得到0001,如果x是0110,x&1得到0000.
3樓:關冬靈環厚
&是位操作運算子中的與運算,計算時,先把原來的十進位制數轉換成二進位制,按照如下規則每一位對應著進行運算:
1&1=1
1&0=0
0&1=0
0&0=0
這道題就沒這麼麻煩了,因為9999是奇數,轉換成二進位制數後,最後一位肯定是1,所以9998除了最後一位是0以外,其他位數都和9999的相同,這樣除了最後一位,其他位數只可能有兩種運算:1&1=1和0&0=0,而最後一位進行的運算是1&0=0,這樣,得到的結果就與9998的二進位制數是一樣的了,換言之
9999&9998=9998
c語言裡x-=1是什麼意思?
4樓:匿名使用者
c語言中的任何乙個雙目運算子(就是和2個數做運算的運算子,比如一些數**算符,邏輯運算子,關係運算子,位運算子)都可以和賦值運算子在一起組成「復合的賦值運算子」。
具體運算規則如下:
x - = 1 左邊保留變數x,然後把賦值左邊的變數和運算子都挪到右邊,變成x=x-1即可。
若有c*=a-b,相當於c=c*(a-b)。注意括號。
5樓:匿名使用者
c語言裡的賦值運算子有 = -= += *= /= .
int a=5; //把5賦給變數a
int b=10;
b +=5; //把【b當前值】加【5】後【再賦給】變數b ,即b = 10 + 5;
其他的-= += *= /= 類似!
6樓:匿名使用者
int x = 8;
x -= 1;(復合賦值運算子)
那麼x = 7;等同於:x = x - 1;
但x-=1只計算x一次,而x=x-1計算x兩次,其它的像x *= 4即x = x * 4,所以x=32另x &= 4即x = x&4
7樓:匿名使用者
x-=1的意思就是x=x-1;
如:y+=3 就是y=y+3
-= += *= /= 都一樣
這是c語言裡面的復合運算子
8樓:匿名使用者
-=是乙個賦值運算子,x-=1的意思是x=x-1,
類似的還有+=,*=,/=,《=,》=,—=……=,|=
這些賦值運算子的用法都是一樣的,如x-=1的意思是x=x-1
9樓:匿名使用者
x-=1意思就是x=x-1.
例如:x本來為5,那麼經過x-=1後,x就等於5-1,即等於4.
10樓:mvp睫毛在跳舞
相當於:x=x減1,就是左邊的移到右邊,是種簡寫!
11樓:匿名使用者
x = x-1;
雙目運算都可以這麼寫
12樓:匿名使用者
x-=1 就是 x=x-1
c語言中!x是什麼意思
13樓:紅紅紅紅貨
邏輯判斷,嘆
bai號是非
du的意思,x是各變數,如果
zhix為零那麼!x就是dao1,相反是專0。
若x是「0」(為假)
屬,則「!x」就不是零(為真),則裡面為真,進入if下的大。
若x不是「0」(為真),則「!x」就是零(為假),則裡面為假,跳過if下的大。
擴充套件資料:c語言運算子列表:
1、優先順序1級
結合方向左結合(自左至右)
()圓括號
下標運算子
->指向結構體成員運算子
.結構體成員運算子(請注意它是乙個實心圓點)2、優先順序2級
結合方向右結合(自右至左)單目運算子
!邏輯非運算子
~按位取反運算子
++自增運算子
--自減運算子
-負號運算子
(型別)型別轉換運算子
*指標運算子
&位址與運算子
sizeof長度運算子
14樓:楊必宇
邏輯判斷,嘆號是非的意思,x是各變數,如果x為零那麼!x就是1,相反是0。
若x是「0」(為假),則「e69da5e887aa62616964757a686964616f31333431373935!x」就不是零(為真),則裡面為真,進入if下的大。
若x不是「0」(為真),則「!x」就是零(為假),則裡面為假,跳過if下的大。
擴充套件資料:
基本的操作符有:「非」(¬)、「與」(∧)、「或」(∨)、「條件」(→)以及「雙條件」(↔)。「非」是乙個一元操作符,它只操作一項(¬ p)。
剩下的是二元操作符,操作兩項來組成複雜語句(p ∧ q,p ∨ q,p → q,p ↔ q)。
注意,符號「與」(∧)和交集(∩),「或」(∨)和並集(∪)的相似性。這不是巧合:交集的定義使用「與」,並集的定義是用「或」。
c語言關鍵字。
signed:宣告有符號型別變數。
unsigned:宣告無符號型別變數。
struct:宣告結構體變數。
union:宣告聯合型別。
enum:宣告列舉型別。
switch:用於開關語句。
case:開關語句分支。
default:開關語句中的「其他」分支。
auto:宣告自動變數,預設時編譯器預設為此。
const:宣告唯讀變數。
static:宣告靜態變數。
register:宣告暫存器變數。
15樓:小曲曲去哪兒
這裡就是乙個控制語句,直到x=0才停止迴圈,!x是求反的意思,只要x值是零才成立
16樓:匿名使用者
當x=0時執行while迴圈
!即取反,當x!=0時不執行
17樓:韋姐姐
小孩兒喝豆腐腦有好處嗎?
18樓:匿名使用者
!x的意思就是 x!=0
c語言程式中x>>=1是什麼意思??
19樓:四捨**入
>>=:這是復合運算子
「>>」是雙目移位運算子,其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
例如:設 a=15(這是十進位制,要把它轉換為2進製數),a>>2表示把000001111右移為00000011(十進位制3)。
20樓:餘啊水中游啊遊
>>=:這是復合運算子
右移運算右移運算子
「>>」是雙目運算子。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。例如:
設 a=15(這是十進位制,要把它轉換為2進製數),a>>2 表示把000001111右移為00000011(十進位制3)。應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。
例如:#include "stdio.h"
void main()
//結果為:x=0x88888888
//然而
#include "stdio.h"
void main()
//以下結果為:x=0x44444444
先把x向右移一位再賦值給x,所以x的值有變化,第一種情況沒有變化
21樓:粘潔茹凰
"!"是取非得意思。
兩個基本概念
1、在c語言中一般認為「0」是假,其他不是「0」的都是真。
2、if()裡面為真,則進入if下的大括弧{},為假,就跳過。
以此題為例:
若x是「0」(為假)。則「!x」就不是零(為真)。則裡面為真,進入if下的大{}。
若x不是「0」(為真)。則「!x」就是零(為假)。則裡面為假,跳過if下的大{}。
22樓:聽不清啊
c語言程式中x>>=1,如果作用於整數x,就是把x右移一位,把x的二進位制值的最後一位丟棄,最高位補0。
實際就是把x的值除以2。在運算結果上等價於x=x/2。
23樓:安徽新華電腦
>>是右移運算子,就是將n的二進位制表示向右移位。你這裡的n>>=1表示將n的二進位制表示向右移動一位再賦值給n.這裡的》=與+=,-=,*=的用法是一樣的,先做運算再賦值
24樓:匿名使用者
x>>=1:是將x 以二進位制形式表示,讓各位向右移動1 位,左補0(邏輯右移1 位,相當於除 2 處理), 然後將結果仍存入x 中。
注:你的c 編譯系統若預設為是算術位移,則是各位向右移動1 位,左補1. 用時要考查一下噢。
25樓:nohow絕不
這是移位運算的意思。
是位操作運算的一種。移位運算子有雙目移位運算子:<<(左移)和》(右移)。
移位運算子組成的表示式也屬於算術表示式,其值為算術值。左移運算是將乙個二進位制位的運算元按指定移動的位數向左移位,移出位被丟棄,右邊的空位一律補0。右移運算是將乙個二進位制位的運算元按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。
在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。
26樓:匿名使用者
表示x=x>>1,右移一位,關於怎麼移,可參考樓上的解釋
c語言中 y=((x=3*y,x+1),x-1)是什麼意思
27樓:寂寞的哥布林
這是bai考試題?
考逗號表達du式嗎?
你這個問題本身zhi
就有問題,你dao的y沒有初值。內我只能假設容y=1分析給你看
首先計算x=3*y,結果賦給x,假設是3;
然後計算x+1,用上面的結果就是3+1了,就是4.
逗號表示式取最右邊表示式的結果賦值。那麼
(x=3*y,x+1)
這個表示式的結果就是4.
在計算y=(4,x-1),你應該就明白了。x剛才是賦值過為3了,那麼x-1=2;同理,
y=((x=3*y,x+1),x-1)
實際賦值為y=2,同時x有第乙個表示式賦值為3.
28樓:夜禮服假面
y=((x=3*y,x+1),x-1)可以拆成多個語句,這樣你就理解了
拆分為x=3*y;
y = x +1;
y = x - 1;
c語言中x==0是什麼意思
29樓:匿名使用者
判斷變數x的值是否為0
如果是 那麼這個式子的邏輯值為1(或者真)否則 其邏輯值為0(或者假)
例如if(x==0)
如果x為0,那麼x==0就為1(或者真),就執行否則就跳過不執行
30樓:千鋒教育
「==」是邏輯bai運算子du,用於判斷是否等zhi於。例如: y = (x == 0) 中如果daox的值回為0,那答麼 x == 0 的運算結果就是1,y的值就是1,否則x == 0 的運算結果就是0,y就等於0。
find命令
功能:在目錄結構中搜尋檔案,並執行指定的操作。此命令提供了相當多的查詢條件,功能很強大。
語法:find 起始目錄 尋找條件 操作
說明:find命令從指定的起始目錄開始,遞迴地搜尋其各個子目錄,查詢滿足尋找條件的檔案並對之採取相關的操作。
31樓:匿名使用者
==相當於我們平常說的等於,=是賦值,很容易混淆,多多注意。
32樓:
判斷語句
如果x=0,輸出1
如果x不等於0,輸出0
33樓:鐵天偉合瑞
「==」是
邏輯運算子,用於判斷是否等於。例如:y=
(x==
0)中如果x的值為0,那麼x==
0的運算結果就是專1,y的值就是1,否則屬x==0的運算結果就是0,y就等於0。
這是c等語言比較基本且應該掌握的知識。
C語言裡char是什麼意思,C語言中char 是什麼意思? 和char 有什麼區別呀
字元使用一個位元組來表示的範圍是 0 256每一個字元對應於ascii表中的一個數 也就是 1 127 比如 空格 是 對應的 20 那麼 在程式了 int a 可以理解為是先把 char型別強制型別轉換為int再賦值 百小度 char 型別可以與int型別變換的!所以也可以說是整數型別吧! 賈遠稱...
c語言中字元1是什麼意思, C語言中字元 1 是什麼意思?
珈藍惜夢 1 為轉義字元,代表的意思是 標題開始 在c語言中,所有的ascii碼都可以用 加數字 一般是8進位制數字 來表示。而c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。轉義字元是很多程式語...
在C語言中是什麼意思,C語言中 c 是什麼意思?
勢如雲 這是c語言的邏輯運算子 異或 這個 講的非常詳細,我摘抄了一些,詳細的你看以看看。有很例子,好懂!http hi.baidu.com rect blog item b5be43da977c6adbb7fd4855.html 邏輯運算子把各個運算的變數 或常量 連線起來組成一個邏輯表示式。邏輯...