有不当之处希望各位多多指正!!!!!!
2.58
/********2.58*********/
bool is_little_endian()
{
unsigned int x = 1;
return *((unsigned char*)&x);
}
2.59
(x & 0xFF) | (y & (~0xFF))
/****
*测试程序
****/
void test()
{
int x = 0x89ABCDEF;
int y = 0x76543210;
printf("%x\n",(x & 0xFF) | (y & (~0xFF)));
}
2.60
分析:先将第i个字节清空,再将该字节置为要求的字节
要定位到所给定的字的第i个字节,需要移动的位数为8*i,及i << 3,以下给出函数
/*********2.60**********/
unsigned replace_byte(unsigned x,unsigned char b,int i)
{
int shift = i << 3;
return (x & ~(0xff << shift)) | (b << shift);
}
2.61
每种情况为真对应一个表达式