feelf 发表于 2014-12-26 21:53:07

c语言判断负数问题

在KEIL中,遇到负数的问题,判断不了
比如
x=0-1;
if (x<0)
x=0;
这样的语句,运行后X并不等于0,是什么情况

黑夜之狼 发表于 2014-12-26 22:01:38

x的变量类型是什么

mint 发表于 2014-12-26 22:09:53

是啊,如沙发所问,如果类型是无符号型的,那就是2^n-1了

liuchg 发表于 2014-12-26 22:14:28

signed char x和 unsigned char x 在执行了x=0-1之后,一个是-1,一个是255

Gallen.Zhang 发表于 2014-12-26 22:16:40

x是无符号类型的话,当然无法为负

liyang0727 发表于 2014-12-26 22:19:39

no signal

jacky2011 发表于 2014-12-26 22:23:08

数据类型要先定义

lxm 发表于 2014-12-26 22:36:45

这跟X类型有关. 编译器看X 是无符号的, 那么不管对 x作什么操作x永远不会小于0

sunbest80 发表于 2014-12-26 22:38:33

调试时看看X是多少啊

356053261 发表于 2014-12-26 22:48:09

这么多热心人,楼主还没解决?

feelf 发表于 2014-12-26 22:55:53

明白了,负数变量要定义为signed char

lsn_tj 发表于 2014-12-26 22:58:09

楼主这次印象深刻了吧,以后不能犯这种错误了。做技术的不能显得太不专业了。

lsn_tj 发表于 2014-12-26 22:58:32

楼主这次印象深刻了吧,以后不能犯这种错误了。做技术的不能显得太不专业了。

lsn_tj 发表于 2014-12-26 22:58:50

楼主这次印象深刻了吧,以后不能犯这种错误了。做技术的不能显得太不专业了。

gonggu8181 发表于 2014-12-26 23:07:38

lsn_tj 发表于 2014-12-26 22:58
楼主这次印象深刻了吧,以后不能犯这种错误了。做技术的不能显得太不专业了。 ...

楼主已经很深刻了,呵呵。你这连着三遍,楼主铭记一生啊!

Wisen 发表于 2014-12-26 23:09:04

进来看真像的{:loveliness:}

bbglx 发表于 2014-12-26 23:59:03

好欢乐的帖子,楼主是不是定义成char了

feelf 发表于 2014-12-27 00:06:12

gonggu8181 发表于 2014-12-26 23:07
楼主已经很深刻了,呵呵。你这连着三遍,楼主铭记一生啊!

哈哈,这次真记住了

lsn_tj 发表于 2014-12-27 09:00:39

不好意思啊,网络有点忙,点“回复”次数多了点。

mcu5i51 发表于 2014-12-27 09:16:21

不要相信 Char 的数据范围是多少,C没有规定的,因此自己显式定义有没有符号吧

sky_walker 发表于 2014-12-27 10:13:17

呵呵,显然是符号数的问题

mofire 发表于 2014-12-28 13:05:26

基础知识点。

374533905 发表于 2014-12-29 17:18:41

大哥 变量类型定义了没有啊???
页: [1]
查看完整版本: c语言判断负数问题