C語言之欄位型別應用的技巧

2021-08-18 23:33:44 字數 1202 閱讀 8849

在各種裝置間的傳輸協議或者通訊協議中,一般對資料的字段型別都各不相同,比如bcd碼,bin碼,ascii碼等。下面接收幾種字段型別定義的例項

1.bcd碼

定義乙個16位機器編碼 2018041912345678

uint8_t		dev[8] ;
一般兩種儲存方式:

dev[0]=0x20;

dev[1]=0x18;

dev[2]=0x04;

dev[3]=0x19;

dev[4]=0x12;

dev[5]=0x34;

dev[6]=0x56;

dev[7]=0x78;

dev[0]=0x78;

dev[1]=0x56;

dev[2]=0x34;

dev[3]=0x12;

dev[4]=0x19;

dev[5]=0x04;

dev[6]=0x18;

dev[7]=0x20;

2.bin碼

定義乙個費用變數

uint16_t money;
uint8_t buf[128];
money=0x1234;

一般兩種儲存方式:

buf[0]=0x12; buf[1]=0x34

buf[0]=0x34; buf[1]=0x12
3.字串

都是以ascii碼形式上傳

裝置號 

const char temp="ay03b000017090003a";

uint8_t buf,len;

len=sprintf((char *)buf, "%s",temp);

這是大端儲存方式

如果小端儲存方式還有進行陣列掉頭

uint8_t datbuf[100];

strchghead(datbuf,(uint8_t *)&buf,len)

void strchghead(unsigned char *dbuf,unsigned char *sbuf,unsigned int slen)

{ unsigned int i;

for(i=0;i

C語言之結構型別

列舉是一種使用者定義的資料型別,它用關鍵字enum宣告如下 enum 列舉型別名稱 列舉型別名字通常並不真的使用,要用d是在大括號裡的名字,因為它們就是常量符號,它們的型別是int,值則依次從0到n。如 enum colors 建立了三個常量,red的值時0,yellow的值是1,而green的值是...

C語言之列舉型別

如果乙個變數有幾種可能的值,則可以定義為列舉型別,就是把各種存在的值一一的列舉出來。列舉在c c c 中,是乙個被命名的整型常數的集合。它可以讓資料更簡潔,更易讀。接下來我們舉個例子,比如 一星期有 7 天,如果不用列舉,我們需要使用 define 來為每個整數定義乙個別名 define mon 1...

C語言之布林型別

c 語言標準 c89 沒有定義布林型別,所以 c 語言判斷真假時以0為假,非0為真但這種做法不直觀,所以我們可以借助 c 語言的巨集定義 c 語言標準 c99 提供了 bool型,bool仍是整數型別,但與一般整型不同的是,bool變數只能賦值為0或1,非 0的值都會被儲存為1,c99還提供了乙個標...