位制转换

1. main()

{

  printf("%f", 5);      //5按照double输出,会内存越界,无法确定输出内容

  printf("%d", 5.01);  //会产生一个很大的数, 因为5.01是float, 和int的设计不一样,导致按照int输出会很大。

}

设置 某个位

#define      BIT  (0x01 <<3)

void setBit(a)

{

  a |= Bit;

}

void clearBit(a)

{

  a&= (~Bit);

}

大端和小端

大端格式:

在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图2.1所示:

 

小端格式:

与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如图2.2所示:

 

 请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1

解答:

int checkCPU( )

{

    {

           union w

           {  

                  int  a;

                  char b;

           } c;

           c.a = 1;

           return(c.b ==1);

    }

}

小端模式是自然的。

原文地址:https://www.cnblogs.com/herso/p/2081623.html