字体
第(2/6)页
关灯
   存书签 书架管理 返回目录
    0X2A(十进制为 42)、0XA0 (十进制为 160)、0XFFFF (十进制为 65535);

    以下各数不是合法的十六进制整常数:

    5A (无前缀 0X)、0X3H (含有非十六进制数码)。

    4)

    整型常数的后缀:在 16 位字长的机器上,基本整型的长度也为 16 位,因此表示的

    数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为

    -32768~+32767。八进制无符号数的表示范围为 0~0177777。十六进制无符号数

    的表示范围为 0X0~0XFFFF 或 0x0~0xFFFF。如果使用的数超过了上述范围,就

    必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。

    例如:

    十进制长整常数:

    158L (十进制为 158)、358000L (十进制为 358000);

    八进制长整常数:

    012L (十进制为 10)、077L (十进制为 63)、0200000L (十进制为 65536);

    十六进制长整常数:

    0X15L (十进制为 21)、0XA5L (十进制为 165)、0X10000L (十进制为 65536)。

    长整数 158L 和基本整常数 158 在数值上并无区别。但对 158L,因为是长整型量,

    C编译系统将为它分配 4 个字节存储空间。而对 158,因为是基本整型,只分配 2 个字

    节的存储空间。因此在运算和输出格式上要予以注意,避免出错。

    无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。

    例如:

    358u,0x38Au,235Lu 均为无符号数。

    前缀,后缀可同时使用以表示各种类型的数。如 0XA5Lu 表示十六进制无符号长

    整数 A5,其十进制为 165。

    3.3.2 整型变量

    1. 整型数据在内存中的存放形式

    如果定义了一个整型变量 i:

    int i;

    i=10;

    i

    10

    0 0  0  0  0  0 0 0 0 0 0 0 1 0 1 0

    数值是以补码表示的:

    ? 正数的补码和原码相同;

    ? 负数的补码:将该数的绝对值的二进制形式按位取反再加 1。

    例如:

    求-10 的补码:

    10 的原码:

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    取反:

    0 0  0  0  0  0 0 0 0 0 0 0 1 0 1 0

    1 1  1  1  1  1 1 1 1 1 1 1 0 1 0 1

    再加 1,得-10 的补码:

    1 1  1  1  1

    1 1 1 1 1 1 1 0 1 1 0

    由此可知,左面的第一位是表示符号的。

    2. 整型变量的分类

    1) 基本型:类型说明符为 int,在内存中占 2 个字节。

    2) 短整量:类型说明符为 short
上一页 目录 下一页