亚博智能论坛  
  
查看: 522|回复: 3

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

  [复制链接]

该用户从未签到

0

主题

13

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2017-6-22 16:25:54 | 显示全部楼层 |阅读模式
请看下面一小段程序,
uint x;
uchar temp;
.
.
.
if(temp==0)x--;
if(x<0)x=0;
.
.
.
运行会出错,我分析由于X默认值是0,当变量temp为0时,x减1就是负的了,超过了uint的范围
当我将第一行改成这样
int x;
就一切正常了
回复

使用道具 举报

该用户从未签到

16

主题

52

帖子

109

积分

菜鸟程序猿

Rank: 2

积分
109
发表于 2017-6-22 16:26:39 | 显示全部楼层

楼主需要补营养:微机基础

比如二进制、补码、加减法……
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-7-27 10:11
  • 8

    主题

    22

    帖子

    53

    积分

    新手上路

    Rank: 1

    积分
    53
    发表于 2017-6-22 16:27:15 | 显示全部楼层

    uint没有负值,范围0~65535。值为0时,-1后为65535。
    要小于0的话就要用int类型
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    16

    帖子

    35

    积分

    新手上路

    Rank: 1

    积分
    35
    发表于 2017-6-22 16:27:41 | 显示全部楼层
    注意signed和unsigned的数据类型的范围。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表