BYTE original = 0xF0F0;
BYTE bMask = 0x0000;
BYTE wMask = 0xFFFF;
BYTE newBits = 0xAAAA;
/*& operation with "0bit set 0" & "1bit give no change to original byte" */
cout<<"Original o: "<<bits(original)<<endl;
cout<<"NewBits: "<<bits(newBits)<<endl;
cout<<"BMask m: "<<bits(bMask)<<endl;
cout<<"WMask m: "<<bits(wMask)<<endl;
cout<<"o & m with BMask: "<<bits(original & bMask)<<endl;/*0 set original bit as 0 */
cout<<"o & m with WMak: "<<bits(original & wMask)<<endl;/*1 bit put no effect on image*/
cout<<"Result"<<bits(original & wMask | newBits)<<endl;
我的輸出是正確的,但我得到的警告玩....警告與位
起初我用char類型聲明,因爲炭取1字節內存..但仍然是給我的警告,。 ..
然後我申請字節來代替字符...因爲BYTE還需要1字節內存..
警告: 警告C4309: '初始化':定值
截斷這個警告是在所有的聲明行.. 如果字符和字節在內存中採取1Byte,那麼爲什麼我得到警告.. 我在這裏失蹤了什麼?任何人都可以幫助我.. 期待良好的迴應 謝謝
請不要關閉這個問題......你可以直接說我的問題不清楚......但請不要關閉它...... – RidaSana 2011-04-13 14:51:10
所有的初始化常量都是* 2字節*。你爲什麼期望它們適合1個字節? – AnT 2011-04-13 14:53:52
十六進制數字是4位,您試圖存儲的值是16位。你需要兩個字節來存儲這些常量,所以試試'unsigned short'而不是'BYTE',它只有1個字節。 – 2011-04-13 15:06:51