zoukankan      html  css  js  c++  java
  • 17.3.10--关于C元的变量类型所占字节问题和类型转化

    在C语言并没有对于严格规定short,int  long所占字节,只是做了宽泛要求:
    short:至少连个字节

    int建议为一个机器字长,32位环境下机器字长是4个字节,64位环境机器字长是8个字节

    short的长度不能大于int,long的长度不能小于int

    类型转化:char,short--->int--->unsigned --->long--->double<-----float

     再详细一点可以参看:

    http://blog.csdn.net/zhangzhi123456789/article/details/49589137

    1-----

    这个与自己的编译器的位数有关系,但是也有几条铁定的规则:

       sizeof(short int)《=sizeof(int)

      sizeof(int)<=sizeof(long int)

    short int 至少是16位(2个字节)

    long int至少是32位

                                                                这个unsigned是代表没有符号的意思

    例如:

    十六位编辑器:

    char  1个字节

    char *(指针变量类型):2个字节

    short int 2个字节

    unsigned int :2个字节

    float 4个字节

    double 8个字节

    long 4个字节

    long long  8个字节

    unsigned long 4个字节

    32位编译器

    char :1个字节

    char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

    short int : 2个字节

    int: 4个字节

    unsigned int : 4个字节

    float: 4个字节

    double: 8个字节

    long: 4个字节

    long long: 8个字节

    unsigned long: 4个字节64位编译器

    char :1个字节
    char*(即指针变量): 8个字节(和上面的那个是一样的,就是指针类型 而且是64位编辑器,所以寻址范围就是8个字节)
    short int : 2个字节
    int:  4个字节
    unsigned int : 4个字节
    float:  4个字节
    double:   8个字节
    long:   8个字节
    long long:  8个字节
    unsigned long:  8个字节 
    不同进制的整数:
    八进制:使用时,开头必须是0开头(注意是数字零,不是字母o)
    1 //合法的八进制数
    2 int a = 015;  //十进制为 13
    3 int b = -0101;  //十进制为 -65
    4 int c = 0177777;  //十进制为 65535
    5 
    6 //非法的八进制
    7 int m = 256;  //无前缀 0,相当于十进制
    8 int n = 03A2;  //A不是有效数字

    十六进制:由数字0~~9,字母A-F表示,使用时开头必须是0x或者0X:

    //合法的十六进制
    int a = 0X2A;  //十进制为 42
    int b = -0XA0;  //十进制为 -160
    int c = 0xffff;  //十进制为 65535
    
    //非法的十六进制
    int m = 5A;  //无前缀 0X
    int n = 0X3H;  //H不是有效数字

    各种整数输出:

      int -->%d   short-->%hd    long--->%ld

    输出十进制   %d

    输出八进制   %o(注意是字母o)

    输出十六进制   %x或者%X,

    在各个输出还可以加上#       %#d    %#o     %#x    %#X

  • 相关阅读:
    第五章 面向方面编程___通知类型
    从 C++ 到ObjectiveC
    iPhone/Mac ObjectiveC内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现
    两个操作字符串的方法:读取指定位置的字符和找出某个字符串的位置
    SQLITE3使用总结
    iphone中如何进行多线程编程
    sqlite数据库在IOS中的运用
    重载、覆盖、隐藏
    (转)c/c++ 内存管理
    iPhone/Mac ObjectiveC内存管理教程和原理剖析(四)系统自动创建新的autorelease pool
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/6529255.html
Copyright © 2011-2022 走看看