请教,<4294967295的数怎么表示成正数?
各位大侠,我的程序中用这一句话GetPortVal(0x281, &D8L, 1);来对变量D8L进行取值。D8L之前定义的类型为unsigned long 型,实际实验验证时发现D8L经常会取到4294967283之类的值(应为负数),此时得到的实验结果是错误的;当D8L取得正数如47时的实验结果是正确的,请问我改怎么转换D8L的类型使她一直取正值?
谢谢各位!
附关键部分的程序上来
SetPortVal(0x280, 2, 1);
do
{
GetPortVal(0x285, &dwPortVal, 1);
}while((dwPortVal&0x80)!=0x80);
GetPortVal(0x281, &D8L, 1);
GetPortVal(0x282, &D4H, 1);
m_data1 = (D4H&0x0f);
m_data1 = (m_data1 << 8)&0x0f00;
m_data1 += D8L;
变量D4H的值也取的是4294967289之类的负值,但是对实验结果并无影响
m_data定义为int型,实际只有12位长
[解决办法]