触品科技 Fuxi 整数量

整数量可以表示为十进制(Decimal)、16进制(Hexadecimal)和8进制(Octal)数。

<整数量>定义为:

<十进制量> 或
<十六进制量> 或
<八进制量>

<十进制量>定义为:

<十进制数值>[<整型后缀>]

<十六进制量>定义为:

<十六进制数值>[<整型后缀>]

<八进制量>定义为:

<八进制数值>[<整型后缀>]

<整型后缀>定义为以下之一:

SB sb S s I i L l UB ub US us U u UI ui UL ul

在整型数值的后面可以带一个整型后缀,用于限制该数值的类型;无后缀的整型数值缺省为int型,即32位带符号整数。整型后缀同数值类型的关系在以下表格中列出:

后 缀
类型

SB或sb
byte

S或s
short

I或i
int

L或l
long

UB或ub
ubyte

US或us
ushort

UI、U、ui或u
uint

UL或ul
ulong

十进制整数值要么是ASCII字符0,表示整数0,要么是一个非0的ASCII数字,后面可选择地跟一些ASCII数字0 ~ 9。十进制整数的形式化定义如下:

<十进制数值>定义为:

0 或
<非零十进制数字>{<十进制数字>}

<非零十进制数字>定义为:

1 2 3 4 5 6 7 8 9

<十进制数字>定义为:

0 或
<非零十进制数字>

十六进制数值是以ASCII字符0x或0X开头,后面紧跟1个或几个十六进制数字,可以表示正整数、0或负整数。十六进制数字中大于9的数字分别采用ASCII字母a ~ f 或者A ~ F来表示,字母的大小写与值无关。十六进制整数的形式化定义如下:

<十六进制数值>定义为:

0x<十六进制数字>{<十六进制数字>}
0X<十六进制数字>{<十六进制数字>}

<十六进制数字>定义为以下之一:

0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

八进制数值是由ASCII数字0后跟1个或几个ASCII数字0 ~ 7构成,表示正整数、0或负整数。八进制数的定义如下:

<八进制数值>定义为:

0<八进制数字>{<八进制数字>}

<八进制数字>定义为以下之一:

0 1 2 3 4 5 6 7

八进制数值至少包含2个数字;0总是被认为是十进制数,0、00和0x0表示相同的数值0。

在进行词法分析的过程中,还应验证数值的合法性。例如,320sb就不是一个合法的整数量,因为byte型的数值范围是-128~127,而320不在之内。下表列出了各整数类型的取值范围:

类型
十进制数值范围
十六进制数值范围
八进制数值范围

byte
-128 ~ 127
0x80SB ~ 0x7FSB
0200SB ~ 0177SB

ubyte
0 ~ 255
0x00 ~ 0xffUB
0 ~ 0377UB

short
-32 768 ~ 32 767
0x8000S ~ 0x7FFFS
0100000S ~ 077777S

ushort
0 ~ 65 535
0x0000 ~ 0xFFFFUS
0 ~ 0177777US

int
-2147483648 ~ 2147483647
0x80000000 ~ 0x7fffffff
020000000000~017777777777

uint
0 ~ 4294967295
0x00000000ui~ 0xffffffffui
0 ~ 037777777ui

long
223372036854775808~ 9223372036854775807
0x8000000000000000L ~ 0x7fffffffffffffffL
01000000000000000000000L~
0777777777777777777777L

ulong
0 ~
18446744073709551615
0 ~
0xffffffffffffffffUL
0 ~
01777777777777777777777ul

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值