//有符号整数>>操作,符号位不变
#define _is_sign_int(x) ((((x) >> 1) & 0x80000000) ? 1 : 0)
#define is_sign_int(x) (((x) > 0) ? _is_sign_int(0 - (x)) : (((x) == 0) ? _is_sign_int((x) - 1) : _is_sign_int(x)))
is_sign_int()返回1为有符号数,0为无符号数
//无符号整数取反还是无符号整数
#define is_unsign_int(x) (((x) >= 0) && (~(x) >= 0))
is_unsign_int()返回0为有符号数,1为无符号数
谁有好的方法,请补充(请注明原理) :)