做個記錄以及項目里涉及到的問題
一乐埠、整形裝換成兩個字節(jié)
int value = 456;
unsigned char byte1 = (value & 0xff00)>>8; //高8位
unsigned char byte2 = (value & 0xff);//低8位
NSLog(@"byte1= %x byte2= %x ",byte1,byte2);
byte1 = 1; byte2= c8;
二缎岗、兩個字節(jié)轉(zhuǎn)換成十進制整數(shù)
char bytes[]={byte1,byte2};
unsigned char by1 = (bytes[0] & 0xff); //高8位
unsigned char by2 = (bytes[1] & 0xff);//低8位
int temp = (by2|(by1<<8));
NSLog(@"temp = %d",temp);
temp = 456;
三、整形裝換成三個字節(jié)
int value =134456;
unsigned char byte1 = (value & 0xff0000)>>16;//最高8位
unsigned char byte2 = (value & 0xff00)>>8;//中間8位
unsigned char byte3 = (value & 0xff);//低8位
NSLog(@"byte1= %x byte2= %x byte3= %x ",byte1,byte2,byte3);
byte1= 2 byte2= d byte3= 38
四睹晒、三個字節(jié)轉(zhuǎn)換成十進制整數(shù)
char bytes[]={byte1,byte2,byte3};
unsigned char by1 = (bytes[0] & 0xff); //高8位
unsigned char by2 = (bytes[1] & 0xff);//中8位
unsigned char by3 = (bytes[2] & 0xff);//低8位
int temp = (by3|(by2<<8)|(by1<<16));
NSLog(@"temp = %d",temp);
temp = 134456
五吃型、高地位int類型取高低位的值
int temp = 3336;
int h = (time>>8) & 0xff;
int l = time & 0xff;
六坚俗、轉(zhuǎn)回高地位int類型的數(shù)值
利用strtoul函數(shù)將16進制的字符串轉(zhuǎn)為高低位int類型祸泪,方法比較愚蠢,有比較好的處理方案可以告訴我一聲哈~
NSString * aa = [NSString ToHex:[arr[0] integerValue]];
NSString * bb = [NSString ToHex:[arr[1] integerValue]];
NSString *tempStr = [NSString stringWithFormat:@"0x%@%@",aa,bb];
int temp = strtoul([tempStr UTF8String],0,16);