指引网

当前位置: 主页 > 编程开发 > C >

C语言 的 整型数据和浮点型数据

来源:网络 作者:佚名 点击: 时间:2017-07-19 23:09
[摘要]  本文我们来讲解一下C语言基础中的数据类型,整型和浮点,整形数据是没有小数位或指数的数据类,浮点型数据又称实型数据,是一个以十进制表示的符号实数。

整型数据

没有小数位或指数的数据类型被称为整型数据,根据使用方法的分类,整型数据可分为整型常量和整型变量。根据定义或显示的数制分类,可分为十进制、八进制和十六进制。

整型常量

整型常量是在运算中不可改变的整型数据类型,可使用十进制、八进制和十六进制描述一个整型常量。十进制整型常量的表述形式是:

    [正负符号] 十进制整数值

其中十进制整数值可以是从 0 到 9 的一个或多个十进制数位,第 1 位可以是正负符号,但不能是0。八进制整型常量的表述形式是:

    [正负符号]x八进制整数值

八进制整数值可以是从 0 到 7 的一个或多个八进制数位,正负符号后的第 1 位必须是0。十六进制整型常量的表述形式是:

    [正负符号]0x 十六进制整数值        // 使用小写x
    [正负符号]0X 十六进制整数值        // 使用大写X

正负符号后第 1 位必须是 0,第2位必须是小写x或大写X。十六进制的 10~15分别用字母 A~F 表示。(例如十进制 162,用八进制表示为0242,用十进制表示为 0xA2)。

正值整数常量可省略正负符号,负值整型常量必须在数值前加上负号“-”说明。整型常量的数据类型取决于数值本身,如果常量表达式没有使用负号,编译器会认为该常量为无符号数。编译器会根据整型常量的长度自动分配存储空间,甚至可以认为常量的数据长度是没有上限的。但并不代表任意大的数据都能被C语言处理。

八进制和十六进制整型常量在存储方式上与十进制数并无区别,只是定义时使用了不同的表述方法。八进制和十六进制整型常量的存储空间长度也有数值来决定,并且可以存在负值。

整型变量

为变量命名的过程称为“声明”,C语言规定,变量使用前必须声明。整型变量用 int修饰符声明,参见下列源代码。

main()
{
    int a, c;                    // 声明整型变量
    unsigned int b;                // 声明无符号整型变量
    a = 15;                        // 为变量 a 赋值
    b = a;                        // 为变量 b 赋值,b 的值来至 a
    c = a + b;                    // 为变量 c 赋值,c 的值来至 a 与 b 的和
    printf("c = %d\n", c);        // 输出提示字符串和 c 的值
}

通过上例可以看到,不同类型的整型数据也能进行算术运算。



浮点型数据


浮点型数据又称实型数据,是一个以十进制表示的符号实数。符号实数的值包括整数部分、尾数部分和指数部分。

浮点型常量

一些较大的数值,或者有小数位、指数位的数值都需要用浮点型常量表示。浮点型常量的形式是:

    [正负符号] [数值] .[数值] [E | e [正负符号] 数值]

其中,“数值”是一位或多位十进制数字,E 或 e 是指数符号。小数点之前是整数部分,小数点之后是尾数部分,如果小数点后没有数值,尾数部分可以省略。指数符号后的正负符号修饰指数,如果是正数,可省略正负符号。如果没有指数,指数符号及其后的内容可省略。例如,浮点型常量 2.734E3 与 数学表达式 2.734 x 10的3次方意义相同。在浮点型常量中不得出现任何空白符号。在不加说明的情况下,实型常量为正值。如果表示负值,需要在常量前使用负号。

注意:字母 E 或 e 之前必须有数字,且 E 或 e 后面指数必须为整数,如 “e6”、“1.414e6.1”、“.e7”、“e”等都是不合法的指数形式。

浮点型变量

浮点型变量为 单精度(float型)和双精度(double型)。对每一个浮点型变量都应在使用前加以定义。如下例所示:

    float a;        // 声明单精度浮点型变量
    double b;       // 声明双精度浮点型变量

如果浮点型常量是双精度浮点型,当把该常量赋给一个单精度浮点型变量时,系统会截取相应的有效位数。如下例所示:

    float a;            // 声明单精度浮点型变量
    a = 1.23456789;     // 为单精度浮点型变量赋值

由于 float 型变量只能接收 7 位有效数字,因此最后两位小数不起作用。如果 a 改为 double 型,则能全部接收上述 9 位数字并存储在变量 a 中。

------分隔线----------------------------