差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
整数 [2018/09/11 09:06] group001 |
整数 [2021/09/12 22:21] (当前版本) gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
====整数 (integer)==== | ====整数 (integer)==== | ||
整数常数的定义规则如下。\\ | 整数常数的定义规则如下。\\ | ||
- | -整数可以用十进制(decimal)、十六进制(hexadecimal)、八进制(octal)、二进制(binary)形式表示,表现形式为:\\ <null|+|-><size><sign:s|S><base: d|D|h|H|o|O|b|B><0~9|0~f|0~7|0~1|x|z>,其中size、sign和base是可选的。 | + | -整数可以用十进制(decimal)、十六进制(hexadecimal)、八进制(octal)、二进制(binary)形式表示,表现形式为:\\ |
+ | <null|+|-><size><sign:s|S><base: d|D|h|H|o|O|b|B><0~9|0~f|0~7|0~1|x|z>,其中size、sign和base是可选的。 | ||
-最简单的整数是没有size、sign和base的十进制数,只用0~9,可选+或-,表示的是符号数(signed integer)。 | -最简单的整数是没有size、sign和base的十进制数,只用0~9,可选+或-,表示的是符号数(signed integer)。 | ||
-sign必须和base一起使用。当base前面有sign标志时,表示的是符号数(signed integer);当base前面没有sign标志时,表示的是无符号数(unsigned integer)。 | -sign必须和base一起使用。当base前面有sign标志时,表示的是符号数(signed integer);当base前面没有sign标志时,表示的是无符号数(unsigned integer)。 | ||
行 13: | 行 14: | ||
-注意:当把带有size 的负常数(sized signed constant numbers)赋给一个reg类型的变量时,不管这个变量是否是signed,对这个负常数做符号扩展(sign-extend)。 | -注意:当把带有size 的负常数(sized signed constant numbers)赋给一个reg类型的变量时,不管这个变量是否是signed,对这个负常数做符号扩展(sign-extend)。 | ||
\\ | \\ | ||
+ | |||
+ | ### 例子: | ||
+ | |||
<code verilog> | <code verilog> | ||
- | | ||
- | 例子: | ||
//1. Unsized constant numbers | //1. Unsized constant numbers | ||
659 // is a decimal number | 659 // is a decimal number | ||
行 65: | 行 67: | ||
m = -12'h123; //16'FEDD | m = -12'h123; //16'FEDD | ||
m = 12'shEDD; //16'FEDD | m = 12'shEDD; //16'FEDD | ||
+ | </code> | ||
| | ||
- | 我们要避免如下书写错误: | + | 我们要避免如下书写错误: |
+ | <code verilog> | ||
case (sel[1:0]) | case (sel[1:0]) | ||
00: y = a; | 00: y = a; |