拆分
16位拆成兩個8位
u16 data16 = 0x1234;
u8 data8_h,data8_l;
data8_h = (u8)(data16 >>8);
data8_l = (u8)data16;
32位拆成4個8位
方法一:
u32 data32 = 0x12345678;
u8 data8_1,data8_2,data8_3,data8_4;
data8_1 = (u8)(data32 >> 24);
data8_2 = (u8)(data32 >> 16);
data8_3 = (u8)(data32 >> 8);
data8_4 = (u8)data32;
方法二:
u32 data32 = 0x12345678;
u8 data8_1,data8_2,data8_3,data8_4;
u8 *pa; //定義指標
pa = (u8 *)(&data32); //將32位位址,強制轉換為8位位址
data8_1 = *((char *)pa+3);
data8_2 = *((char *)pa+2);
data8_3 = *((char *)pa+1);
data8_4 = *((char *)pa);
合併
2個8位合併成1個16位
u8 data8_h = 0x12;
u8 data8_l = 0x34;
u16 data16;
data16 = ((u16)data8_h << 8) |(u16)(data8_l));
4個8位合併成1個32位
u8 data8_1 = 0x12;
u8 data8_2 = 0x34;
u8 data8_3 = 0x56;
u8 data8_4 = 0x78;
u32 data32;
data32 = ((u32)data8_1 << 24) |((u32)data8_2 << 16) | ((u32)data8_3 << 8) | ((u32)data8_4);
8位16位32位資料的拆分與合併程式
拆分 16位拆成兩個8位 u16 data16 0x1234 u8 data8 h,data8 l data8 h u8 data16 8 data8 l u8 data16 32位拆成4個8位 方法一 u32 data32 0x12345678 u8 data8 1,data8 2,data8 3...
mul和div指令(8位,16位,32位)
無符號乘法指令,預設運算元與eax相乘 這裡只說32位,其他與下面的div類似 格式 mul 運算元 運算元只有乙個運算元與eax相乘,結果共有16位 這裡的16位是16進製制數 高8位放在edx中,低8位放在eax中 執行命令下面的命令,此時,ecx為00000005,eax為ffff fff9 ...
常用資料轉換,8位轉16位 32位函式,複製就能用
下面包含8 轉 32,32轉8,8轉16,16轉8,16轉32,32轉16等微控制器內常用的資料型別轉換,直接複製就可使用,感覺好用可以加關注,以後會經常更新一些常規好用的小 8位轉32位 len 資料長度 data 資料 說明 剩餘位補0 unsigned int data u32 10 void...