位制转换
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);
}
}
小端模式是自然的。