我有如何與它十六進制數據,字符(或字節)轉換爲整數(十進制值)
char tem;
它的值被示出爲吹塑:
Printing description of tem:
(char) tem = '\xd1'
其應平等到十進制的209
。
我的問題是如何以編程方式實現此轉換?這是我想要得到一個等於209的NSInteger。
我有如何與它十六進制數據,字符(或字節)轉換爲整數(十進制值)
char tem;
它的值被示出爲吹塑:
Printing description of tem:
(char) tem = '\xd1'
其應平等到十進制的209
。
我的問題是如何以編程方式實現此轉換?這是我想要得到一個等於209的NSInteger。
也許有我俯瞰的東西在這裏,但鑑於雙方char和NSInteger的都是整數類型,你就不能這樣做
char tem = '\xd1';
NSInteger i = tem;
?或許,以避免意外的符號擴展,
NSInteger i = tem & 0xff;
一個char
變量實際上爲一個8位整數。您不必將其轉換爲NSInteger
以獲取其十進制值。只要明確地告訴編譯器把它解釋爲一個無符號的8位整數,uint8_t
:
char theChar = '\xd1';
NSLog(@"decimal: %d", (uint8_t)theChar); //prints 'decimal: 209'
要將其轉換爲NSInteger
:
NSInteger decimal = (uint8_t)theChar;
如果你在ANSCII燒焦,這樣做:
char a = '3';//example char
int i = (int)(a - '0');