十六进制值的数据类型是什么,如0xD2691E?

ope*_*rog 10 c iphone objective-c ios

我正在尝试编写一个接收十六进制值的方法,例如0xD2691E为了返回UIColor对象.

发现这个宏我想转换成一个方法,但我不知道如何指定除以外的数据类型void *.

#define UIColorFromRGB(rgbValue) [UIColor \
       colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
       green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
       blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

  //Then use any Hex value

 self.view.backgroundColor = UIColorFromRGB(0xD2691E);  
Run Code Online (Sandbox Code Playgroud)

md5*_*md5 12

十六进制值的数据类型是什么样的0xD2691E

根据C标准,十六进制常量的类型是此列表中可以表示其值的第一个:

C11(n1570),§6.4.4.1整数常数

int
unsigned int
long int
unsigned long int
long long int
unsigned long long int
Run Code Online (Sandbox Code Playgroud)

由于D2691E(b16)等于13789470(b10),因此常量的类型取决于您的实现.

C标准只保证INT_MAX >= +32767,而LONG_MAX >= +2147483647.

C11(n1570),5.2.4.2.1整数类型的大小

  • INT_MAX +32767
  • LONG_MAX +2147483647

因此,(unsigned) long int可能是一个合适的选择.


Mau*_*uez 1

据我记得,它们类似于 int 或 unsigned int 。

  • 两者都会为此目的而做。 (3认同)