最近自己也在做蓝牙开发,发现好多做蓝牙开发的都没有接触过C ,字节转换更是晕乎乎的,所以写下此篇博客,提供我转换的方法。
一、整形装换成两个字节
int value = 456;
unsigned char byte1 = (value & 0xff00)>>8; //高8位
unsigned char byte2 = (value & 0xff);//低8位
NSLog(@"byte1= %x byte2= %x ",byte1,byte2);
二、两个字节转换成十进制整数
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;
三、整形装换成三个字节
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
四、三个字节转换成十进制整数
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
如果还有更多的自己接需要转换以此类推