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...