C语言整型数据

C语言整型数据,整型数据分为一般整型、短整型和长整型,并且每一种类型又分为带符号和无符号两种类型。

如表所示,整型数据中一般整型、短整型和长整型的带符号数和无符号数的取值范围以及在内存中所占用的字节数是不同的,这与它们所运行的环境是有关系的,表中使用的是Visual C++ 6.0的开发环境,如果用的是Turbo C 2.0环境,整型在内存中占两个字节数,取值范围为-32768~32767,带符号数的取范围为-32768~32767,无符号数的取值范围为0~65535。

C语言整型数据

整型常量

整型常量的数据类型是整数,包括正整数、负整数和零。在C语言中,整型常量有以下三种不同的数制表示形式。

  • 十进制整数常量:这种表示方法就是我们平时所熟悉的表示方法,由数字0~9构成,最高位也就是左边第一位不能为0。例如-39、0、171等。
  • 八进制整型常量:以数字0开头,其后再写上要表示的八进制数。八进制数各位由0~7这八个数字之一组成。例如0134、0471、-072。
  • 十六进制整型常量:以0X或0x开头,其后再写上要表示的十六进制数。十六进制各位由数字0~9或字母a~f或A~F构成。如0x17、0XCF,-0X1f等。

C语言中提出长整型常量是为了扩大整型数据的数值范围,书写方式也分为十进制、八进制和十六进制,唯一不同的是在整数的末尾要加上大写字母“L”或小写字母“l”。例如,18L、-023L、+0x3BL都是长整型常量。需要注意的是16与16L虽然数值相同,但是它们是不同的整型常量。另外,各个进制都有正负之分,正数前面的“+”号是可以省略的。

整型变量

前面我们了解到,变量的定义由数据类型和变量名组成,数据类型不同变量的类型也就不同,有整型变量、实数型变量、字符型变量等。
整型变量是指其值为整型数据的变量。整型数据有三种,即整型(int)、短整型(short int)和长整型(long int)。为了方便书写,我们将short int和long int后面的int省略,分别用short和long来表示短整型和长整型。

1.整型变量的定义
整型变量分为整型变量、短整型变量、长整型变量。例如:

        int a;            /*定义一个整型变量a*/
        short d=16;       /*定义一个短整型变量d*/
        long s;           /*定义一个长整型变量s*/

整型数据分为带符号数和无符号数,定义时在前面加上signed为带符号变量,加上unsign为无符号变量,因此整型变量归纳起来共有6 种变量类型。通常情况下,我们定义的整型变量都是没有符号标识符的,默认为是带符号变量,只是省略了signed而已,因此上面定义的三个变量实际上为:

        [signed] int a;                     /*定义一个带符号整型变量a*/
        [signed] short d=16;                /*定义一个带符号短整型变量d,并赋值为16*/
        [signed] long s;                    /*定义一个带符号长整型变量s*/

定义无符号整型变量如下:

        unsigned [int] num;                 /*定义一个无符号整型变量num*/
        unsigned short b;                   /*定义一个无符号短整型b*/
        unsigned long count=429496720;      /*定义一个无符号长整型数count,并赋值为429496720*/

2.整型变量的简单运用
不同类型的整型数据可以进行算术运算,下面我们来看一个简单的实例。

        #include<stdio.h>
        void main()
        {
            int a,b,c;        /*定义三个整型变量a,b,c*/
            unsigned u;       /*定义一个无符号整型变量u*/
            a=12;u=8;         /*对变量c和u进行赋值*/
            b=a-24;
            c=b+u;
            printf("b=a-24=%d,c=b+u=%d\n",b,c);
        }

程序运行的结果为:b=a-24=-12,c=b+u=-4。

从表中我们知道不同的整型数据有自己不同的取值范围,例如short int的值是在-32768~32767之间。如果我们将最大值加1或者最小值减1会产生什么情况呢?

        #include <stdio.h>
        void main()
        {
            short a,b,c,d;
            a=32767;
            b=a+1;
            c=-32768;
            d=c-1;
            printf("%d\n%d\n%d\n%d\n",a,b,c,d);
        }

程序运行结果如图所示。
C语言整型数据

上面我们可以看到,当数据超出数据类型的取值范围时就会产生数据溢出,遇到这种情况程序在运行过程中并不会出错,好像汽车里程表一样,达到最大值以后又从最小值开始计数。因此,在给变量赋值及进行数值运算的时候要注意变量数据类型的取值范围,防止因出现数据的溢出现象而得不到正确的结果。

赞(0)

评论 抢沙发

评论前必须登录!