读书人

请问lt;4294967295的数如何表示成正数

发布时间: 2012-04-27 11:57:44 作者: rapoo

请教,<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位长

[解决办法]

探讨

回复2楼在兄弟

你的意思是,我需要加一个if语句判断下取得的数值和0的关系,然后进行数值的转换?

读书人网 >C++

热点推荐