2.58
int isLittleEndian1()
{
int a = 1 ;
return ((char *)&a)[0 ];
}
2.59
int f2_59(int x, int y)
{
return x&(((1 <<(sizeof (int )-1 )*8 )-1 )<<8 )|(y&0xFF );
}
2.60
unsigned replaceByte(unsigned x, int i, unsigned char b)
{
int t = ~0 - ((1L L<<(i+1 <<3 ))-(1 <<(i<<3 )));
return x&t|((unsigned )b<<(i<<3 ));
}
2.61
int A2_61(int x)
{
return !(x^~0 );
}
int B2_61(int x)
{
return !x;
}
int C2_61(int x)
{
return !((x&0xFF )^0xFF );
}
int D2_61(int x)
{
return !((unsigned )x>>((sizeof (int )-1 )<<3 ));
}
2.62
int isRightShiftAreArithmetic()
{
int x = -1 >>1 ;
return x==-1 ;
}
2.63
unsigned srl(unsigned x, int k)
{
unsigned xsra = (int )x>>k;
return xsra&(1 <<(sizeof (int )<<3 )-k)-1 ;
}
int sra(int x, int k)
{
int xsrl = (unsigned )x>>k;
int t = ~0 -(1 <<k)+1 & x>>((sizeof (int )<<3 )-1 );
return t|xsrl;
}
2.64