一个关于数据类型的问题请教

2020-01-18 18:43发布

请看下面一小段程序,
uint x;
uchar temp;
.
.
.
if(temp==0)x--;
if(x<0)x=0;
.
.
.
运行会出错,我分析由于X默认值是0,当变量temp为0时,x减1就是负的了,超过了uint的范围
当我将第一行改成这样
int x;
就一切正常了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
cd4000
1楼-- · 2020-01-18 19:23
不知道我这样的分析对不对?
cd4000
2楼-- · 2020-01-18 20:24
当正常时,最小显示的值是0;而不正常时,比0再小的话,会显示“35”这样一个奇怪的值
xivisi
3楼-- · 2020-01-18 21:50
楼主需要补营养:微机基础

比如二进制、补码、加减法……
Mickey25
4楼-- · 2020-01-18 22:15
理解正确
xf331785508
5楼-- · 2020-01-18 22:46
 精彩回答 2  元偷偷看……
dalarang
6楼-- · 2020-01-19 04:41
uint没有负值,范围0~65535。值为0时,-1后为65535。
要小于0的话就要用int类型

一周热门 更多>