ksh84222 发表于 2009-6-7 13:02:47

在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的问题.

RENESAS-etouch 发表于 2009-6-7 19:11:58

char等于signed char 他的范围是-128到127
unsigned char 等范围是0到255
如果你值大于127时候 可能显示负数吧 所以执行第二步哦

ksh84222 发表于 2009-6-8 21:41:15

我想也是,但在AVR和PIC中char等于unsigned char 吧
页: [1]
查看完整版本: 在NEN PM中char是作什么类型来处理的?