DWORD 和4個char之間的相互轉換

2021-06-04 17:15:57 字數 1017 閱讀 4005

dword -> 4 char:

const static dword  kcmdrefreshui = 'abcd';在記憶體中是以dcba的方式存的:

直接把記憶體拷貝過來是倒序的:dcba,反轉就可以了。

(注意這個小端機器,大端機器就不需要反轉,上圖右邊是高位位址)。

memcpy(buffer,&kcmdrefreshui,sizeof(dword));

string cmd = string(buffer);

reverse(cmd.begin(),cmd.end());

4 char -> dword:

開始操作之前buffer裡面是"abcd",因為我們是小端機器,所以我們期望轉成功之後記憶體顯示為"abcd"。dword是unsigned long型別,是4*8位的,就是說每乙個8位對應乙個字母。一次性賦值比較困難,我們可以一次賦值乙個char,用位 「|」 操作就可以把char拷貝到對應的8 位裡面,因為"|"是「有一則一」。賦值完乙個字元之後,我們可以把dword裡面還未賦值的位元組位位移過來再次賦值,這個是位移操作">>" "<

printf("%08x\n",tmprccmd<< 0);

tmprccmd = (tmprccmd << 0 )| buffer[3];

printf("%08x\n",tmprccmd<<8);

tmprccmd = (tmprccmd << 8 )| buffer[2];

printf("%08x\n",tmprccmd<<8);

tmprccmd = (tmprccmd << 8 )| buffer[1];

printf("%08x\n",tmprccmd<<8);

tmprccmd = (tmprccmd << 8 )| buffer[0];

printf("%08x\n",tmprccmd);

大小端機器解釋: 

char 和 char 之間的區別

char 是指標引用 cha 是指標 當用指標引用作為形參的時候,改變形參的指標,同時實參的指標也改變了。當用指標做形參的時候,改變形參的指標,實參的指標不改變,當改變指標所指向的內容的時候,會同時改變。如果你懂引用的,應該可以理解了。include using namespace std stru...

char 和CString之間的轉換

cstring 是一種很特殊的 c 物件,它裡面包含了三個值 乙個指向某個資料緩衝區的指標 乙個是該緩衝中有效的字元記數 它是不可訪問的,是位於 cstring 位址之下的乙個隱藏區域 以及乙個緩衝區長度。有效字元數的大小可以是從0到該緩衝最大長度值減1之間的任何數 因為字串結尾有乙個null字元 ...

C string 和char 之間的轉換

c 將string加入了c 庫,我們可以用string型別的變數儲存字串,而不用字元型陣列。要使用string類,必須在標頭檔案中包含string標頭檔案 include,並且新增std命名空間。1 string轉換為char 的方法有 1.data string str good boy cons...