相关疑难解决方法(0)

C宏定义确定大端或小端机?

是否有一行宏定义来确定机器的字节顺序.我使用以下代码,但将其转换为宏将太长.

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)

c architecture macros endianness

101
推荐指数
13
解决办法
9万
查看次数

如何将十六进制转换为RGB

我想从十六进制转换为RGB,但十六进制处理像#FFFFFF这样的字符串.我怎样才能做到这一点?

rgb hex cocoa-touch objective-c ios

28
推荐指数
3
解决办法
2万
查看次数

如何从UIColor或rgb获取十六进制字符串

现在我可以将十六进制字符串转换为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转换为十六进制字符串?

objective-c

19
推荐指数
4
解决办法
2万
查看次数

联盟和字节序

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 cpu endianness

6
推荐指数
1
解决办法
6836
查看次数

标签 统计

c ×2

endianness ×2

objective-c ×2

architecture ×1

cocoa-touch ×1

cpu ×1

hex ×1

ios ×1

macros ×1

rgb ×1