在NEN PM中char是作什么类型来处理的?
这几天在调试一个程序,发现怎么也过不了,char VR1_Data;
signed int Data_int;
Data_int = VR1_Data;
if(VR1_Data > 128) Data +=((Data_int - 128)<<1);
else Data -=((128 - Data_int)<<1);
调试时发现不管VR1_Data是多大都只运行了Data -=((128 - Data_int)<<1).后来想了下就把char VR1_Data;改成了unsigned char VR1_Data后就好了.
我在AVR和PIC都没碰到过这样的问题.
这个问题只在比较大小时才发现有,而作其它计算时又没有这样的问题.不知道这是我的程序的问题,还有PM的问题. char等于signed char 他的范围是-128到127
unsigned char 等范围是0到255
如果你值大于127时候 可能显示负数吧 所以执行第二步哦 我想也是,但在AVR和PIC中char等于unsigned char 吧
页:
[1]