1樓:
verilog中&與&&的區別為:性質不同、計算結果不同、引數不同。
一、性質不同
1、&:&是位運算子,表示是按位與。
2、&&:&&是邏輯運算子,表示是邏輯與。
二、計算結果不同
1、&:&的計算結果為十進位制數。
2、&&:&&的計算結果為true或false。
三、引數不同
1、&:&的引數為進位制數,可以是二進位制、十進位制、十六進位制數,也可以是整數、負數。
2、&&:&&的引數為進位制數,也可以是比較公式,將比較公式值作為最終的引數。
2樓:z風起
1、兩者概念不同
&&是邏輯與:即判斷&&兩側的表示式是否都為真,都為真則此&&表示式值為真;
& 是按位與:即將&兩側的數用二進位制,每一位都求與運算(二進位制與運算,跟邏輯與差不多),最後得到的二進位制數即為結果;
2、兩者結果不同
邏輯與結果只講真和假,而按位與得出的卻是實實在在的一個數。
以一個verilog測試程式為例,說明兩者之間的區別:
module test (clk, aa, bb, cc, aout, bout, cout, dout);
input clk;
input[3:0] aa,bb,cc;
output aout,bout,cout,dout;
reg aout;
reg bout;
reg cout;
reg dout;
always @(posedge clk)//檢測時鐘上升沿
begin : u1
if (aa && cc && bb)
begin
aout<=1'b1 ;
endelse
begin
aout<=1'b0 ;
endend
always @(posedge clk)//檢測時鐘上升沿
begin : u2
if (aa & cc & bb)
begin
bout<=1'b1 ;
endelse
begin
bout<=1'b0 ;
endend
always @(posedge clk)//檢測時鐘上升沿
begin : u3
if ((aa>5) && (cc<8) && (bb>4))
begin
cout<=1'b1 ;
endelse
begin
cout<=1'b0 ;
endend
always @(posedge clk)//檢測時鐘上升沿
begin : u4
if ((aa>5) & (cc<8) & (bb>4))
begin
dout<=1'b1 ;
endelse
begin
dout<=1'b0 ;
endendendmodule
上面三個always @()中分別用到如下三種if判斷表示式
(aa && cc && bb)
(aa & cc & bb)
((aa>5) && (cc<8) && (bb>4))
((aa>5) & (cc<8) & (bb>4))
擴充套件資料:
對這四條表示式進行邏輯分析 :
1、(aa && cc && bb)
邏輯分析:
當aa、bb、cc都為非0數時,表示式為“1”。
怎麼判斷aa、bb、cc為非“0”,先分析一下為“0”的情況。
當aa為0的時候,aa等於4'b0,即每位都為0,即只需aa的4位向量之間做一下“邏輯或”運算,aa[3] || aa[2] || aa[1] || aa[0],也可寫成(|aa);
當4位向量中只需有一位不為0,那麼aa就必然不為“0”。
整個實現過程就是,先aa、bb、cc各自本身的各位之間做“邏輯或”運算,運算的結果之間做“邏輯與”運算。
2、(aa & cc & bb)
邏輯分析:
表示式(aa & cc & bb)等效為:
((aa[3] & bb[3] & cc[3]) || (aa[2] & bb[2] & cc[2]) ||
(aa[1] & bb[1] & cc[1]) || (aa[0] & bb[0] & cc[0]))
即只需要其中有一個表示式(aa[i] & bb[i] & cc[i]) 不為“0”,則整個結果就為“1” ,i取0到3。
3、((aa>5) && (cc<8) && (bb>4))
邏輯分析:
表示式(aa>5)、(cc<8)、(bb>4)結果均為1位的邏輯量,三個邏輯量之間做“邏輯與”。
4、((aa>5) & (cc<8) & (bb>4))
邏輯分析:
三個一位的邏輯量之間做“邏輯與”和“位與”是等效的。
3樓:忻憐雲
&按位與 賦值運算
&& 邏輯與 做條件判斷用
while(a&&b)
; 判斷a和b與完後 是否為真 為真執行以後內容。
找本書 運算元型別 就明白了!
4樓:匿名使用者
&表示按位與運算,是一種位運算子;&&是邏輯運算子
VFP中for與while的區別
for 從始至終,從第一個記錄工作到末記錄,不管條件是否符合,至少迴圈一次。while 當條件滿足時才進入迴圈,執行while 為真後的語句。 while 所有型別的迴圈都可以使用。for 主要用於計數迴圈。scan主要針對資料庫記錄。例子1 for aa 1 to 10 step 2 aa,10 ...
access中from與form的區別
forms 集合包含 microsoft access 資料庫中當前開啟的所有窗體。form 物件是 forms 集合的成員,前者用於引用後者 已開啟窗體集合 中某一個窗體。引用form物件舉例 語法 示例 說明 forms formname forms orderform 引用一個名為 order...
法語中meme si與meme的區別
這個問題問的有問題嘛。meme si 是meme 構成的短語裡的一個,是副詞性的,而meme主要用法是形容詞性的,有時也做副詞用,這時候才需要跟meme si 區別一下。意思是差不多的,不過,meme後面接一個名詞 或名詞性片語 而meme si 後面一般接一句話。a meme,直接,副詞性的。qu...