C语言温习Day01

C语言中的整数类型

C语言的整数类型有哪些?

        short、int和long分别是短整型、整形和长整型;

如何输出C语言中的不同的整数类型?

不同整数类型的输出:
        a.输出短整型使用格式化字符(占位符)%hd;
        b.输出整型使用格式化字符串(占位符)%d;
        c.输出长整型使用格式化字符串(占位符)%ld。
注意:

使用sizeof运算符计算C语言中的整数类型的长度

sizeof用法:
     a.sizeof是一个运算符,用来计算某一数据类型或者变量所占的字节数;
     b.如果使用sizeof计算某一个变量,后面可以使用括号也可以省略小括号;
     如果sizeof计算某一数据类型时,不可以省略括号。
     c.如下:short、int和long在Windows 64位环境中长度计算分别为2,4,4.

注意事项

  • 如果再输出时没有给格式化字符串传入实参,则系统会分配一个随机值;
  • 可以使用ld输出整形或者短整型,也可以使用d输出短整型,但不能使用 hd输出长整型或者整形,或者d也不能输出长整型的数据;否则会出现截断 数值的情况。

C语言中整数类型的长度比较

        整形的长度依次是:2<= short <=int <= long;

C语言中的二进制、八进制和十六进制

如何在C语言中表示二进制、八进制和十六进制

  1.二进制:
      a.二进制是由0和1组成的,使用C语言表示时需要再字面量最前面加上“0b”来进行表示;
      注意:并不是所有的编译器都支持二进制。
      实测结果:
          Visual C++ 6.0 不支持;
          VS2010以上支持,但不包含;
          GCC4.8.2以上支持;
          MinGW 6.0支持;
  2.八进制:
      八进制由数字0-7组成,在C语言中表示时需要在字面量的最前面加上“数字0”;
  3.十六进制:
      十六进制由数字0-9以及字母A-F(a-f),在C语言中表示时需要在字面量常量的
      最前面加上0x或0X;

如何在C语言中输出二进制、八进制和十六进制

        a.C语言没有为二进制提供输出的格式化字符串(占位符);
        b.八进制也可以使用short、int和long来扩展数据类型,因此输出时可用的占位符分别是
    %ho、%o、%lo同十进制的整型表示一样,第一个代表着哪一种扩展书路类型,第二个表示
    进制;
        c.同八进制一样,十六进制也提供了三种扩展数据类型的输出占位符,分别时%hx、%x、%lx;
        d.按照上面的不同进制的一般占位符进行输出,会把字面量中的前缀给去掉,直接输出后面的
    数值;如果输出时想加上前缀可以使用下面的方法:
    在占位符"%"的后面面加上“#”即可;

注意事项

         一般占位符都是用小写的形式,是因为一些编译器不支持大写的占位符,如果编译器支持 大写的编写的方式,也可以使用大写的形式,如“lX”; 如果在输出十进制时,尽可能避免添加字符“#”,因为有些编译器不支持。


代码部分

#include <stdio.h>

int main() {

    /**
     * 整形:
     *  1.整形的三种表示方式:short、int和long分别是短整型、整形和长整型;
     *  2.整形的长度依次是:2<= short <=int <= long;
     *  3.sizeof用法:
     *      a.sizeof是一个运算符,用来计算某一数据类型或者变量所占的字节数;
     *      b.如果使用sizeof计算某一个变量,后面可以使用括号也可以省略小括号;
     *      如果sizeof计算某一数据类型时,不可以省略括号。
     *      c.如下:short、int和long在Windows 64位环境中长度计算分别为2,4,4.
     *  4.不同整数类型的输出:
     *      a.输出短整型使用格式化字符(占位符)%hd;
     *      b.输出整型使用格式化字符串(占位符)%d;
     *      c.输出长整型使用格式化字符串(占位符)%ld。
     *      注意:
     *          如果再输出时没有给格式化字符串传入实参,则系统会分配一个随机值;
     *          可以使用ld输出整形或者短整型,也可以使用d输出短整型,但不能使用
     *          hd输出长整型或者整形,或者d也不能输出长整型的数据;否则会出现截断
     *          数值的情况。
     */

    short a = 100;
    int b = 10000;
    long c = 1000000;

    int short_a = sizeof a;
    int int_b = sizeof b;
    int long_c = sizeof c;

    int short_length = sizeof(short);
    int int_length = sizeof(int);
    int long_length = sizeof(long);

    printf("sizeof_short_a = %d,sizeof_int_b = %d, sizeof_long_c= %d;\n"
           "sizeof_short = %d;sizeof_int = %d;sizeof_long = %d."
           ,short_a,int_b,long_c,short_length,int_length,long_length,"\n");

    //输出不同的整数类型
    printf("输出短整型:%hd;\n"
           "输出整型:%d;\n"
           "输出长整型:%ld.\n",
           a,
           b,
           c);
    /**
     * 二进制、八进制和十六进制的表示:
     *  1.二进制:
     *      a.二进制是由0和1组成的,使用C语言表示时需要再字面量最前面加上“0b”来进行表示;
     *      注意:并不是所有的编译器都支持二进制。
     *      实测结果:
     *          Visual C++ 6.0 不支持;
     *          VS2010以上支持,但不包含;
     *          GCC4.8.2以上支持;
     *          MinGW 6.0支持;
     *  2.八进制:
     *      八进制由数字0-7组成,在C语言中表示时需要在字面量的最前面加上“数字0”;
     *  3.十六进制:
     *      十六进制由数字0-9以及字母A-F(a-f),在C语言中表示时需要在字面量常量的
     *      最前面加上0x或0X;
     *
     *  4.不同进制的输出:
     *      a.C语言没有为二进制提供输出的格式化字符串(占位符);
     *      b.八进制也可以使用short、int和long来扩展数据类型,因此输出时可用的占位符分别是
     *          %ho、%o、%lo同十进制的整型表示一样,第一个代表着哪一种扩展书路类型,第二个表示
     *          进制;
     *      c.同八进制一样,十六进制也提供了三种扩展数据类型的输出占位符,分别时%hx、%x、%lx;
     *      d.按照上面的不同进制的一般占位符进行输出,会把字面量中的前缀给去掉,直接输出后面的
     *      数值;如果输出时想加上前缀可以使用下面的方法:
     *          在占位符"%"的后面面加上“#”即可;
     *      注意:
     *          一般占位符都是用小写的形式,是因为一些编译器不支持大写的占位符,如果编译器支持
     *      大写的编写的方式,也可以使用大写的形式,如“lX”;
     *          如果在输出十进制时,尽可能避免添加字符“#”,因为有些编译器不支持。
     */

    //二进制
    short bianryA = 0b1001;
    int bianryB = 0b1010;
    long bianryC = 0b1011;

    //八进制
    short octoaryA = 02007;
    int octoaryB = 06007;
    long octoaryC = 07007;

    // 十六进制
    short hexadecimalA = 0x10A;
    int hexadecimalB = 0X10b;
    long hexadecimalC = 0x10C;

    //分别输出不同进制,不同整型的变量
    printf("ouput_short_octoary = %ho;output_int_octoary = %o;output_long_octoary=%lo ;\n",octoaryA,octoaryB,octoaryC);
    printf("ouput_short_hexdecimal = %hx;output_int_hexdecimal = %x;output_long_hexdecimal=%lx ;\n",hexadecimalA,hexadecimalB,hexadecimalC);

    //输出原型
    printf("ouput_short_octoary = %#ho;output_int_octoary = %#o;output_long_octoary=%#lo ;\n",octoaryA,octoaryB,octoaryC);
    printf("ouput_short_hexdecimal = %#hx;output_int_hexdecimal = %#x;output_long_hexdecimal=%#lx ;\n",hexadecimalA,hexadecimalB,hexadecimalC);

    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值