美文网首页
老五讲c-第一堂

老五讲c-第一堂

作者: QG不吃鱼的猫 | 来源:发表于2018-06-07 11:21 被阅读9次

    c语言 零碎知识点

    • Endian 指的是存储字节的顺序。
    • 两种常用的字节排序:Little-Endian和Big-Endian
    Little-Endian
    如果多字节的最低有效字节首先存储在最低的存储器地址处,那么硬件被称为小端。
    例子:小端存储0x44332211
    地址:---------- MEMORY BYTES ---------- 
       100:00 11 22 33 44 00 00 00 00 00 ...
    
    Big-Endian
    如果多字节的最高有效字节首先存储在最低的存储器地址处,那么硬件被称为大端。
    例子:大端存储0x44332211
    地址:---------- MEMORY BYTES ---------- 
       100:00 44 33 22 11 00 00 00 00 00 ...
    
    多字节和单字节的区别
    单字节数据不受Endianness的影响。(类似于大端)
    如字符串'abcd',起始字符'a'存储在最低的内存位置。
    例子:‘abcd’
    地址:---------- MEMORY BYTES ---------- --- ASCII字符---
       100:00 61 62 63 64 00 00 00 00 00 ... .abcd ....
    
    代码检测大小端
        int checkIsLittleEndian 
        {  
            int i = 0x12345678;  
            char *c = &i;  
            return ((c[0] == 0x78) && (c[1] == 0x56) && (c[2] == 0x34) && (c[3] == 0x12));  
        }  
    
    几种不常用的打印
    • o:无符号8进制(octal)整数(不输出前缀0)

    • x/X:无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)

          printf("0x%x 0x%X",123,123);输出0x7b 0x7B
      
    • e/E:科学计数法,使用指数(Exponent)表示浮点数

          printf("%e %E",0.000000123,0.000000123);
          输出 1.230000e-07     1.230000E-07
      
    • p:以16进制形式输出指针

          printf("%p","lvlv");输出:0x103e6f45d
      
    基本数据类型在内存中的存储形式
    • 整数类型 在内存中以补码的形式存在,对于一个正整数来说,它的补码是它的原码本身;对于一个负数来说,它的补码是它的原码取反加1.

    • 浮点类型 在计算机中以二进制的形式存储

          例如:12.565
          整数部分:1100
          小数部分:0.565*2=1.130得小数点后第一位为1,0.13*2=0.26得小数点第二位为0,0.26*2=0.52得第三位为0;0.52*2=1.04得第四位为1,以此类推。
          
      
    • 字符型 把字符的相对应的ASCII放到存储单元中,而这些ASCII代码值在计算机中以二进制的形式存放的。

    相关文章

      网友评论

          本文标题:老五讲c-第一堂

          本文链接:https://www.haomeiwen.com/subject/szawsftx.html