是否有一行宏定义来确定机器的字节顺序.我使用以下代码,但将其转换为宏将太长.
unsigned char test_endian( void )
{
int test_var = 1;
unsigned char test_endian* = (unsigned char*)&test_var;
return (test_endian[0] == NULL);
}
Run Code Online (Sandbox Code Playgroud) 我想从十六进制转换为RGB,但十六进制处理像#FFFFFF这样的字符串.我怎样才能做到这一点?
现在我可以将十六进制字符串转换为rgb颜色,如下所示:
// Input is without the # ie : white = FFFFFF
+ (UIColor *)colorWithHexString:(NSString *)hexString
{
unsigned int hex;
[[NSScanner scannerWithString:hexString] scanHexInt:&hex];
int r = (hex >> 16) & 0xFF;
int g = (hex >> 8) & 0xFF;
int b = (hex) & 0xFF;
return [UIColor colorWithRed:r / 255.0f
green:g / 255.0f
blue:b / 255.0f
alpha:1.0f];
}
Run Code Online (Sandbox Code Playgroud)
我怎么能将rgb转换为十六进制字符串?
typedef union status
{
int nri;
char cit[2];
}Status;
int main() {
Status s;
s.nri = 1;
printf("%d \n",s.nri);
printf("%d,%d,\n",s.cit[0],s.cit[1]);
}
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
1
0,1
Run Code Online (Sandbox Code Playgroud)
我知道第二行的输出取决于CPU的结束.我怎么能在平台独立的程序中写这样的?有没有办法检查CPU的endianess?
c ×2
endianness ×2
objective-c ×2
architecture ×1
cocoa-touch ×1
cpu ×1
hex ×1
ios ×1
macros ×1
rgb ×1