Verilog HDL基礎之:數據類型和運算符

2021-01-14 電子產品世界

本文引用地址:http://www.eepw.com.cn/article/201706/348839.htm

Verilog HDL中總共有19種數據類型,數據類型是用來表示數字電路硬體中的數據儲存和傳送元素的。在本書中,我們先只介紹4個最基本的數據類型,它們分別是:reg型,wire型,integer型和parameter型。

其他數據類型在後面的章節裡逐步介紹,讀者也可以查閱附錄中Verilog HDL語法參考書的有關章節逐步掌握。其他的類型如下:large型、medium型、scalared型、time型、small型、tri型、trio型、tri1型、triand型、trior型、trireg型、vectored型、wand型和wor型。

這些數據類型除time型外都與基本邏輯單元建庫有關,與系統設計沒有很大的關係。在一般電路設計自動化的環境下,仿真用的基本部件庫是由半導體廠家和EDA工具廠家共同提供的。系統設計工程師不必過多地關心門級和開關級的Verilog HDL語法現象。Verilog HDL語言中也有常量和變量之分,它們分別屬於以上這些類型。下面對最常用的幾種進行介紹。

常量

常量是在程序運行過程中其值不能被改變的量。下面首先對在Verilog HDL語言中使用的數字及其表示方式進行介紹。

1.數字

(1)整數。

在Verilog HDL中,整型常量有以下4種進位表示形式。

① 二進位整數(b或B)。

② 十進位整數(d或D)。

③ 十六進位整數(h或H)。

④ 八進位整數(o或O)。

數字表達方式有以下3種。

① 位寬>進位>數字>,這是一種全面的描述方式。

② 進位>數字>,在這種描述方式中,數字的位寬採用預設位寬(這由具體的機器系統決定,但至少32位)。

③ 數字>,在這種描述方式中,採用預設進位十進位。

在表達式中,位寬指明了數字的精確位數。例如:一個4位二進位數數字的位寬為4,一個4位十六進位數數字的位寬為16(因為每單個十六進位數要用4位二進位數來表示),如下例所示:

8b10101100 //位寬為8的數的二進位表示,b表示二進位

8ha2 //位寬為8的數的十六進位,h表示十六進位。

(2)x和z值。

在數字電路中,x代表不定值,z代表高阻值。一個x可以用來定義十六/八/二進位數的四/三/一位二進位數的狀態。z的表示方式同x類似。z還有一種表達方式是可以寫作?。在使用case表達式時建議使用這種寫法,以提高程序的可讀性,如下例所示:

4b10x0 //位寬為4的二進位數從低位數起第二位為不定值

4b101z //位寬為4的二進位數從低位數起第一位為高阻值

12dz //位寬為12的十進位數其值為高阻值(第一種表達方式)

12d? //位寬為12的十進位數其值為高阻值(第二種表達方式)

8h4x //位寬為8的十六進位數其低四位值為不定值

(3)負數。

一個數字可以被定義為負數,只需在位寬表達式前加一個減號,並且減號必須寫在數字定義表達式的最前面。注意減號不可以放在位寬和進位之間,也不可以放在進位和具體的數之間,如下例所示:

-8d5 //這個表達式代表5的補數(用8位二進位數表示)

8d-5 //非法格式

(4)下劃線(underscore_)。

下劃線可以用來分隔數字的表達以提高程序可讀性。但不可以用在位寬和進位處,只能用在具體的數字之間,例如:

16b1010_1011_1111_1010 //合法格式

8b_0011_1010 //非法格式

當常量不聲明位數時,默認值是32位,每個字母用8位的ASCII值表示,例如:

10=32d10=32b1010 //十進位和二進位

1=32d1=32b1 //十進位和二進位

-1=-32d1=32hFFFFFFFF //十進位和十六進位

BX=32BX=32BXXXXXXX…X //默認聲明為32位

AB=16B01000001_01000010 //每個字母用8位表示

2.參數(Parameter)

在Verilog HDL中用parameter來定義常量,即用parameter來定義一個標識符代表一個常量,稱為符號常量,即標識符形式的常量。採用標識符代表一個常量可提高程序的可讀性和可維護性。parameter型數據是一種常數型的數據,其說明格式如下:

Parameter 參數名1=表達式,參數名2=表達式, …, 參數名n=表達式;

parameter是參數型數據的確認符,確認符後跟著一個用逗號分隔開的賦值語句表。在每一個賦值語句的右邊必須是一個常數表達式。也就是說,該表達式只能包含數字或先前已定義過的參數,例如:

parameter msb=7; //定義參數msb為常量7

parameter e=25, f=29; //定義兩個常數參數

parameter r=5.7; //聲明r為一個實型參數

parameter byte_size=8, byte_msb=byte_size-1; //用常數表達式賦值

parameter average_delay = (r+f)/2; //用常數表達式賦值

參數型常數經常用於定義延遲時間和變量寬度。在模塊或實例引用時可通過參數傳遞改變在被引用模塊或實例中已定義的參數。下面將通過一個例子進一步說明在層次調用的電路中改變參數常用的一些用法。

module Decode(A,F); //模塊聲明

parameter Width=1, Polarity=1; //參數聲明

……………

endmodule

module Top;

wire[3:0] A4; //連線資源聲明

wire[4:0] A5;

wire[15:0] F16;

wire[31:0] F32;

Decode #(4,0) D1(A4,F16); //模塊引用,並傳遞參數(4,0)

Decode #(5) D2(A5,F32); //模塊引用,並傳遞參數(5)

endmodule

在引用Decode實例時,D1和D2的Width將採用不同的值,分別為4和5,且D1的Polarity將為0。可用例子中所用的方法來改變參數,即用「#(4,0)」向D1中傳遞「Width=4,Polarity=0」,用「#(5)」向D2中傳遞「Width=5,Polarit=1」。

變量

變量是在程序運行過程中,其值可以改變的量。在Verilog HDL中變量類型有很多種,這裡只對常用的幾種變量進行介紹。

網絡類型表示結構實體(例如門)之間的物理連接。網絡類型的變量不能儲存值,而且它必需受到驅動器(例如門或連續賦值語句,assign)的驅動。如果沒有驅動器連接到網絡類型的變量上,則該變量就是高阻的,即其值為z。

常用的網絡類型變量包括wire型和tri型。這兩種變量都是用於連接器件單元,它們具有相同的語法格式和功能。之所以提供這兩種名字來表達相同的概念是為了與模型中所使用的變量的實際情況相一致。

wire型變量通常是用來表示單個門驅動或連續賦值語句驅動的網絡型數據,tri型變量則用來表示多驅動器驅動的網絡型數據。如果wire型或tri型變量沒有定義邏輯強度(logic strength),在多驅動源的情況下,邏輯值會發生衝突,從而產生不確定值。

表1所示為在同等驅動強度下,兩個驅動源驅動的wire型和tri型變量的真值表。

表1 wire/tri型變量真值表

wire/tri型變量雙驅動源運算結果

驅動源1

驅動源2

0

1

x

z

0

0

x

x

0

1

1

x

1

x

x

x

x

x

z

0

1

x

z

wire型變量常用來表示用於以assign關鍵字指定的組合邏輯信號。Verilog程序模塊中輸入/輸出信號類型預設時自動定義為wire型。wire型變量可以用作任何方程式的輸入,也可以用作「assign」語句或實例元件的輸出。wire型變量的聲明格式如下:

wire [n-1:0] 變量名1,變量名2,…,變量名i; //共有i條總線,每條總線內有n條線路

也可以如下表示:

wire [n:1] 變量名1,變量名2,…,變量名i; //共有i條總線,每條總線內有n條線路

其中,wire是wire型變量的確認符,[n-1:0]和[n:1]代表該變量的位寬,即該變量有幾位,最後跟著的是變量的名字。如果一次定義多個變量,變量名之間用逗號隔開。聲明語句的最後要用分號表示語句結束。如下所示:

wire a; //定義了一個一位的wire型變量

wire [7:0] b; //定義了一個八位的wire型變量

wire [4:1] c, d; //定義了兩個四位的wire型變量

2.寄存器型變量

寄存器是數據儲存單元的抽象。寄存器型變量的關鍵字是reg。通過賦值語句可以改變寄存器儲存的值,其作用與改變觸發器儲存的值相當。

Verilog HDL語言提供了功能強大的結構語句使設計者能有效地控制是否執行這些賦值語句。這些控制結構用來描述硬體觸發條件,例如時鐘的上升沿和多路器的選通信號。reg類型變量的預設初始值為不定值,即x。

reg型變量常用來表示用於「always」模塊內的指定信號,常代表觸發器。通常,在設計中要由「always」塊通過使用行為描述語句來表達邏輯關係。在「always」塊內被賦值的每一個信號都必須定義成reg型。和wire型變量類似,reg型變量的聲明格式如下:

reg [n-1:0] 變量名1,變量名2,…,變量名i; //共有i條總線,每條總線內有n條線路

也可以如下表示:

reg [n:1] 變量名1,變量名2,…,變量名i; //共有i條總線,每條總線內有n條線路

其中,reg是reg型變量的確認標識符,[n-1:0]和[n:1]代表該變量的位寬,即該變量有幾位(bit),最後跟著的是變量的名字。如果一次定義多個變量,變量名之間用逗號隔開。聲明語句的最後要用分號表示語句結束。如下所示:

reg rega; //定義了一個一位的名為rega的reg型變量

reg [3:0] regb; //定義了一個四位的名為regb的reg型變量

reg [4:1] regc, regd; //定義了兩個四位的名為regc和regd的reg型變量

reg型變量可以賦正值,也可以賦負值。但當一個reg型變量是一個表達式中的操作數時,它的值將被當作是無符號值,即正值。例如:當一個四位的寄存器用作表達式中的操作數時,如果開始寄存器被賦以值-1,則在表達式中進行運算時,其值被認為是+15。

3.存儲器型變量

Verilog HDL通過對reg型變量建立數組來對存儲器建模,用於描述RAM型存儲器、ROM存儲器和reg文件。數組中的每一個單元通過一個數組索引進行尋址。由於在Verilog語言中沒有多維數組存在,因此memory型數據是通過擴展reg型數據的地址範圍來生成的。其格式如下:

reg [n-1:0] 存儲器名[m-1:0];

或:

reg [n-1:0] 存儲器名[m:1];

在這裡,reg[n-1:0]定義了存儲器中每一個存儲單元的大小,即該存儲單元是一個n位的寄存器。存儲器名後的[m-1:0]或[m:1]則定義了該存儲器中有多少個這樣的寄存器。最後用分號結束定義語句。下面舉例說明:

reg [7:0] mema[255:0]; //定義一個名為mema的256×8的存儲器

這個例子定義了一個名為mema的存儲器,該存儲器有256個8位的存儲器。該存儲器的地址範圍是0~255。需要注意的是,對存儲器進行地址索引的表達式必須是常數表達式。

另外,在同一個數據類型聲明語句裡,可以同時定義存儲器型數據和reg型數據。 例如:

parameter wordsize=16, memsize=256; //定義兩個參數

reg [wordsize-1:0] mem[memsize-1:0],writereg, readreg; //使用可變參數來定義存儲器

儘管memory型數據和reg型數據的定義格式很相似,但要注意其不同之處。如一個由n個1位寄存器構成的存儲器組是不同於一個n位的寄存器的,如下所示:

reg [n-1:0] rega; //一個n位的寄存器

reg mema [n-1:0]; //一個由n個1位寄存器構成的存儲器組

一個n位的寄存器可以在一條賦值語句裡進行賦值,而一個完整的存儲器則不行,例如:

rega =0; //合法賦值語句

mema =0; //非法賦值語句

如果想對memory中的存儲單元進行讀寫操作,必須指定該單元在存儲器中的地址。下面的寫法是正確的。

mema[3]=0; //給memory中的第3個存儲單元賦值為0。

進行尋址的地址索引可以是表達式,這樣就可以對存儲器中的不同單元進行操作。表達式的值可以取決於電路中其他的寄存器的值。例如可以用一個加法計數器來做RAM的地址索引。

Verilog HDL語言的運算符範圍很廣,其運算符按其功能可分為以下幾類。

算術運算符:(+,-,×,/,%)。賦值運算符:(=,=)。關係運算符:(>,,>=,=)。邏輯運算符:(,||,!)。條件運算符:(?:)。位運算符:(~,|,^,,^~)。移位運算符:(,>>)。拼接運算符:({ })。其他

在Verilog HDL語言中運算符所帶的操作數是不同的,按其所帶操作數的個數運算符可分為以下3種。

單目運算符(unary operator):可以帶一個操作數,操作數放在運算符的右邊。

二目運算符(binary operator):可以帶兩個操作數,操作數放在運算符的兩邊。

三目運算符(ternary operator):可以帶三個操作數,這三個操作數用三目運算符分隔開。

例如:

clock = ~clock; // ~ 是一個單目取反運算符,clock是操作數。

c = a | b; // | 是一個二目按位或運算符,a 和 b是操作數。

r = s ? t : u; // ?: 是一個三目條件運算符,s,t,u是操作數。

下面對常用的幾種運算符進行介紹。

1.基本的算術運算符

在Verilog HDL語言中,算術運算符又稱為二進位運算符,共有下面幾種。

+:(加法運算符或正值運算符,如ega+regb、+3)。−:(減法運算符或負值運算符,如rega−3、−3)。´:(乘法運算符,如rega´3)。/:(除法運算符,如5/3)。% :(模運算符或求餘運算符,要求%兩側均為整型數據,如7%3的值為1)。

在進行整數除法運算時,結果值要略去小數部分,只取整數部分。而進行取模運算時,結果值的符號位採用模運算式裡第一個操作數的符號位,例如:

10%3 1 //餘數為1

11%3 2 //餘數為2

12%3 0 //餘數為0,即無餘數

-10%3 -1 //結果取第一個操作數的符號位,所以餘數為-1

11%3 2 //結果取第一個操作數的符號位,所以餘數為2.

注意

在進行算術運算操作時,如果某一個操作數有不確定的值x,則整個結果也為不定值x。

2.位運算符

Verilog HDL作為一種硬體描述語言是針對硬體電路而言的。在硬體電路中信號有4種狀態值1、0、x和z。在電路中信號進行與或非時,反映在Verilog HDL中則是相應的操作數的位運算。Verilog HDL提供了以下5種位運算符。

~ :(取反) :(按位與)| :(按位或)^ :(按位異或)^~:(按位同或(異或非))

說明:

位運算符中除了~是單目運算符以外,均為二目運算符,即要求運算符兩側各有一個操作數。位運算符中的二目運算符要求對兩個操作數的相應位進行運算操作。

下面對各運算符分別進行介紹。

「取反」運算符~

~是一個單目運算符,用來對一個操作數進行按位取反運算。如表2所示為單目運算符~的運算規則表。

表2 ~ 運算規則表

舉例說明:

rega=b1010; //rega的初值為b1010

rega=~rega; //rega的值進行取反運算後變為b0101

「按位與」運算符

按位與運算就是將兩個操作數的相應位進行與運算,其運算規則如表3所示。

表3 運算規則表

運算

操作數1

操作數2

0

1

x

0

0

0

0

1

0

1

x

x

0

x

x

「按位或」運算符 |

按位或運算就是將兩個操作數的相應位進行或運算,其運算規則如表4所示。

表4 | 運算規則表

| 運算

操作數1

操作數2

0

1

x

0

0

1

x

1

1

1

1

x

x

1

x

「按位異或」運算符^(也稱之為XOR運算符)

按位異或運算就是將兩個操作數的相應位進行異或運算,其運算規則如表5所示。

表5 ^ 運算規則表

^ 運算

操作數1

操作數2

0

1

x

0

0

1

x

1

1

0

x

x

x

x

x

「按位同或」運算符^~

按位同或運算就是將兩個操作數的相應位先進行異或運算再進行非運算,其運算規則如表6所示。

表6 ^~ 運算規則表

^~ 運算

操作數1

操作數2

0

1

x

0

1

0

x

1

0

1

x

x

x

x

x

不同長度的數據進行位運算

兩個長度不同的數據進行位運算時,系統會自動將兩者按右端對齊。位數少的操作數會在相應的高位用0填滿,以使兩個操作數按位進行操作。

3.邏輯運算符

在Verilog HDL語言中存在3種邏輯運算符。

「」和「||」是二目運算符,它要求有兩個操作數,如(a>b)(b>c),(ab)||(bc)。「!」是單目運算符,只要求一個操作數,如!(a>b)。如表7所示為邏輯運算的真值表。它表示當a和b的值為不同的組合時,各種邏輯運算所得到的值。

表7 邏輯運算真值表

操 作 數

邏輯運算及結果

a

b

!a

!b

ab

a||b

邏輯運算符中「」和「||」的優先級別低於關係運算符,「!」的優先級別高於算術運算符,例如。

(a>b)(x>y) 可寫成: a>b x>y

(a==b)||(x==y) 可寫成: a==b || x==y

(!a)||(a>b) 可寫成: !a || a>b

為了提高程序的可讀性,明確表達各運算符間的優先關係,建議使用括號。

4.關係運算符

關係運算符共有以下4種。

a b:(a小於b)a > b:(a大於b)a = b:(a小於或等於b)a >= b:(a大於或等於b)

在進行關係運算時,如果聲明的關係是假的(flase),則返回值是0;如果聲明的關係是真的(true),則返回值是1;如果某個操作數的值不定,則關係是模糊的,返回值是不定值。

所有的關係運算符有著相同的優先級別。關係運算符的優先級別低於算術運算符的優先級別,例如。

a size-1 //這種表達方式等同於下面一行的表達方式

a (size-1)

size - (1 a) //這種表達方式不等同於下面一行的表達方式

size - 1 a

從上面的例子可以看出這兩種不同運算符的優先級別。當表達式size -(1a)進行運算時,關係表達式先被運算,然後返回結果值0或1被size減去。而當表達式 size -1a 進行運算時,size先被減去1,然後再同a相比。

5.等式運算符

在Verilog HDL語言中存在4種等式運算符。

= =:(等於)!= :(不等於)= = =:(等於)!= =:(不等於)

這4個運算符都是二目運算符,它要求有兩個操作數。「= =」和「!=」又稱為邏輯等式運算符,其結果由兩個操作數的值決定。由於操作數中某些位可能是不定值x和高阻值z,結果可能為不定值x。

「= = =」和「!= =」運算符則不同,它在對操作數進行比較時,對某些位的不定值x和高阻值z也進行比較。兩個操作數必需完全一致,其結果才是1,否則為0。「= = =」和「!= =」運算符常用於case表達式的判別,所以又稱為「case等式運算符」。

這4個等式運算符的優先級別是相同的。下面畫出「= =」與「= = =」的真值表,幫助理解兩者間的區別。

表8 等式運算符真值表

= = = 運算

操作數1

操作數2

0

1

x

z

0

1

0

0

0

1

0

1

0

0

x

0

0

1

0

z

0

0

0

1

= = 運算

操作數1

操作數2

0

1

x

z

0

1

0

x

x

1

0

1

x

x

x

x

x

x

x

z

x

x

x

x

下面舉一個例子說明「= =」與「= = =」的區別。

if(A==1』bx) $display( AisX ); //當A等於X時,這個語句不執行

if(A===1』bx) $display( AisX ); //當A等於X時,這個語句執行

6.移位運算符

在Verilog HDL中有兩種移位運算符。

:(左移位運算符)

>>:(右移位運算符)

其使用方法如下:

a >> n;

a n;

a代表要進行移位的操作數,n代表要移幾位。這兩種移位運算都用0來填補移出的空位。下面舉例說明:

module shift;

reg [3:0] start, result;

initial begin

start = 1; //start在初始時刻設為值0001

result = (start2); //移位後,start的值0100,然後賦給result

end

endmodule

從上面的例子可以看出,start在移過兩位以後,用0來填補空出的位。進行移位運算時應注意移位前後變量的位數,下面舉例說明。

4』b10011 = 5』b10010; //左移1位後用0填補低位

4』b10012 = 6』b100100; //左移2位後用00填補低位

16 = 32』b1000000; //左移6位後用000000填補低位

4』b1001>>1 = 4』b0100; //右移1位後,低1位丟失,高1位用0填補

4』b1001>>4 = 4』b0000; //右移4位後,低4位丟失,高4位用0填補

7.位拼接運算符(Concatation)

在Verilog HDL語言有一個特殊的運算符:位拼接運算符{}。用這個運算符可以把兩個或多個信號的某些位拼接起來進行運算操作。其使用方法如下:

{信號1的某幾位,信號2的某幾位,..,..,信號n的某幾位}

即把某些信號的某些位詳細地列出來,中間用逗號分開,最後用大括號括起來表示一個整體信號,例如:

{a,b[3:0],w,3』b101}

也可以寫成為:

{a,b[3],b[2],b[1],b[0],w,1』b1,1』b0,1』b1}

在位拼接表達式中不允許存在沒有指明位數的信號。這是因為在計算拼接信號的位寬的大小時必需知道其中每個信號的位寬。

位拼接也可以用重複法來簡化表達式,如下所示:

{4{w}} //等同於{w,w,w,w}

位拼接還可以用嵌套的方式來表達,如下所示:

{b,{3{a,b}}} //等同於{b,a,b,a,b,a,b}

用於表示重複的表達式必須是常數表達式,如上例中的4和3。

8.縮減運算符(reduction operator)

縮減運算符是單目運算符,也有與、或、非運算。其與、或、非運算規則類似於位運算符的與、或、非運算規則,但其運算過程不同。位運算是對操作數的相應位進行與、或、非運算,操作數是幾位數,則運算結果也是幾位數。而縮減運算則不同,縮減運算是對單個操作數進行與、或、非遞推運算,最後的運算結果是一位的二進位數。

縮減運算的具體運算過程如下。

(1)先將操作數的第一位與第二位進行與、或、非運算。

(2)將運算結果與第三位進行與、或、非運算,依次類推,直至最後一位。

例如:

reg [3:0] B;

reg C;

C = B;

相當於:

C =( ( B[0]B[1] ) B[2] ) B[3];

由於縮減運算的與、或、非運算規則類似於位運算符與、或、非運算規則,這裡不再詳細講述,可參照位運算符的運算規則介紹。

9.優先級別

各種運算符的優先級別關係如表9所示。

表9 運算符優先級別表

運 算 符

優 先 級 別

! ~

* / %

+ -

>>

= > >=

== != === !==

^ ^~

|

||

? :

相關焦點

  • Python數據類型之數字(Numbers)和運算符
    # Numbers(數字)類型分類# 1、整數 int># 2、浮點數 float# 3、複數 complex# 整型:通常被稱為整數,可以是正整數或負整數,不攜帶小數點;Python3中整型是沒有限制大小的,可以當做長整型(long)類型使用。
  • python語言基本數據類型-運算符
    運算符用於執行程序代碼運算,會針對一個以上操作數項目來進行運算。例如:5+8,其操作數是5和8,而運算符則是"+"。運算符大致可以分為算術運算符、比較運算符、賦值運算符、邏輯運算符、成員運算符。算術運算符:+,-,*,/,%,**,//比較運算符:==,!
  • C/C++編程筆記:運算符—所有程式語言的基礎!一文帶你搞懂它
    運算符是任何程式語言的基礎。因此,如果不使用運算符,則C / C ++程式語言的功能是不完整的。我們可以將運算符定義為符號,以幫助我們對操作數執行特定的數學和邏輯計算。換句話說,我們可以說運算符對運算對象進行運算。
  • Verilog HDL基礎之:其他常用語句
    本文引用地址:http://www.eepw.com.cn/article/201706/348847.htm循環語句在Verilog HDL中存在著4種類型的循環語句,用來控制執行語句的執行次數。(1)forever:連續的執行語句。(2)repeat:連續執行一條語句 n 次。
  • Verilog HDL簡明教程(2)
    模塊有4個埠: 兩個輸入埠A和B,兩個輸出埠Sum和Carry。由於沒有定義埠的位數, 所有埠大小都為1位;同時, 由於沒有各埠的數據類型說明, 這四個埠都是線網數據類型。模塊包含兩條描述半加器數據流行為的連續賦值語句。從這種意義上講,這些語句在模塊中出現的順序無關緊要,這些語句是並發的。每條語句的執行順序依賴於發生在變量A和B上的事件。
  • 大數據開發基礎:Java基礎數據類型
    在Java基礎入門學習階段,Java基礎數據類型無疑是基礎當中的重點,掌握基礎數據類型,對於後續去理解和掌握更深入的理論,是有緊密的關聯性的。今天的大數據開發基礎學習,我們就來講講,Java八種基礎數據類型。
  • Javascript之if條件語句和三目運算符
    D、多個if語句連用我們使用昨天學過的prompt( )和 alert( )來做一個簡單的小程序。要求:用戶手動輸入年齡,當年齡大於18小於60的時候,向用戶彈出框顯示"滿足條件,可以註冊",當年齡小於18時,顯示「年齡不符合,不允許註冊」,當年齡大於60時,提示「由於您的年齡超出了系統允許註冊的最大年齡限制,給您帶來的不便,敬請諒解!」。
  • Excel 2010 中運算符應用舉例
    算術運算符應用舉例算術運算符:+、-、* 、/ 、^、%例1「=-5*20+20%*100+4^3/2」,這個公式中主要是用算術運算符連接而成的公式,其中參與第一級別運算是-5,20%,4^3(運算符為負號、百分號、乘方),第二級運算是-5*20,20%*100,4^3/2(運算符為乘和除),第三級參與運算的5*20+20%
  • C++入門基礎系列:走進信息學奧賽,什麼是布爾類型?
    經常我們會在一些競技類知識型比賽中看到這樣的題型:對下列問題的回答只能說:是或否、對和錯等;在現實生活中,也有很多選擇項是二者選其一,比如:婚否等。像這種是否、對錯,在計算機程式語言中,對應的就是一種真假判斷。這樣一種表示真假的數據類型,就是布爾(bool)類型。布爾(bool)類型,只有兩個結果,即真或假。
  • javascript關係運算符
    關係運算符我們來看一下,關係運算符中不同數據類型之間的比較,該如何去比較1.如果是數值之間比較, 那麼就看數值的大小來判斷是true或false字符串雖然沒有大小,但是字符是存儲在計算機上的,計算機是由二進位來存儲的二進位可以轉為十進位數,這樣就會有大小而言了ASCII碼錶就是二進位的存儲表以下是一部分ascii碼錶:我們來比較a和b
  • 教你輕鬆學會C語言系列之——五花八門的運算符
    在2017年年底公布的全球超算500強榜單中,中國超級計算機「神威·太湖之光」位於榜首,其浮點運算速度峰值可達每秒12.5億億次,持續運算速度為每秒9.3億億次。回到程序語言中,比如:「1+1」就是一個最簡單的表達式,其中的兩個數字(1)就是操作數,加號(+)就是運算符,共同構成了一個表達式。
  • 第四篇:JavaScript基本數據類型
    JavaScript基本數據類型有String(字符串類型)、Number(數字類型)、Boolean(布爾類型)、Array(數組類型)、Date(日期類型)。不同於Java語言,JS 語言是弱數據類型,聲明變量時不需要說明數據類型,JS解釋器會自動根據變量的值賦予變量對應的數據類型。
  • 3-js基礎教程:邏輯運算符|和 &&
    一、邏輯運算符 || 和 &&1、 || 表示或者,兩者中有一個為 true,就返回 trueif (0||1) { console.log('true')}if (0||false) { console.log('false')}if (true||0) { console.log(true);}2 &
  • 跟我學java編程—Java邏輯運算符
    邏輯運算符用於連接兩個條件表達式或布爾類型的變量,用於執行多個判斷。在數學中,表示一個數值的範圍時,經常用不等式來表述。例如:假設一個數值取值範圍為0到100,設該數值為x,不等式0<x<100給出了x的取值範圍,在Java程序語言中,邏輯運算符可以實現類似數學中的不等式。
  • 學員問:C語言入門要掌握哪些基礎知識?
    常量有5種類型:整型常量、實型常量、字符常量、字符串常量和符號常量。不同的編譯系統對上述四種整型數據所佔用的位數和數值範圍有不同的規定。類型說明符單詞signed來說明「有符號」(即有正負數之分),不寫signed也隱含說明為有符號,unsigned用來說明「無符號」(只表示正數)。
  • python的邏輯運算符
    運算符計算機可以進行的運算有很多種,運算按種類可分為算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算。print(a >= b) # 大於等於,返回a是否大於等於b賦值運算a = 10b = 20c = 40c = a + b # 將a+b的運算結果賦值給c = 是簡單賦值運算符
  • NET開發-詳解SQL Server資料庫數據類型,對應C#的那些數據類型?
    1.概述在 SQL Server 中,每個列、局部變量、表達式和參數都具有一個相關的數據類型。 數據類型是一種屬性,用於指定對象可保存的數據的類型:整數數據、字符數據、貨幣數據、日期和時間數據、二進位字符串等。
  • Python 炫技操作:海象運算符的三種用法
    很多 Python 3.8 的特性還沒來得及了解,就已經成為舊知識了,比如今天要說的海象運算符。海象運算符是在 PEP 572 被提出的,直到 3.8 版本合入發布。它的英文原名叫 Assignment Expressions,翻譯過來也就是賦值表達式,不過現在大家更普遍地稱之為海象運算符,就是因為它長得真的太像海象了。1. 第一個用法:if/else可能有朋友是第一次接觸這個新特性,所以還是簡單的介紹一下這個海象運算符有什麼用?
  • 一文讀懂js中的隱式類型轉換
    +號+號比較特殊,既可以當做算數運算符做加法,又可以當做字符串連接符1.1 算數運算符 (除string類型外的原始數據類型進行加法運算時)非數字類型,會轉為數字類型//NaN1+true//2true + null//1true + undefined//NaN1.2 字符串連接符(string類型以及引用數據類型時
  • C sharp程式語言基礎之運算符使用方法解析
    一、Convert類型轉換類型如果相兼容的兩個變量,可以使用自動類型轉換或者強制類型轉換,但是,如果兩個類型的變量不兼容,比如 string與int或者string 與double,這個時候我們可以使用一個叫做Convert的轉換工廠進行轉換。