我有
char tem;
它的值显示为打击:
Printing description of tem:
(char) tem = '\xd1'
应该等于十进制的209
。
我的问题是如何以编程方式实现此转换?那就是我希望在这种情况下得到一个等于209的NSInteger。
答案 0 :(得分:0)
也许我在这里忽略了一些东西,但鉴于char和NSInteger都是完整的类型,你不能这样做吗
char tem = '\xd1';
NSInteger i = tem;
?或者,为了避免签名扩展的意外,
NSInteger i = tem & 0xff;
答案 1 :(得分:0)
char
变量 是一个8位整数。您不必将其转换为NSInteger
以获取其小数值。只需明确告诉编译器将其解释为无符号8位整数uint8_t
:
char theChar = '\xd1';
NSLog(@"decimal: %d", (uint8_t)theChar); //prints 'decimal: 209'
将其转换为NSInteger
:
NSInteger decimal = (uint8_t)theChar;
答案 2 :(得分:0)
如果你的字符串是ASCII,请执行以下操作:
char a = '3';//example char
int i = (int)(a - '0');