找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2238|回复: 9
打印 上一主题 下一主题
收起左侧

C语言定义一个变量uchar unsigned=i;怎么实现i++ i--

[复制链接]
跳转到指定楼层
楼主
ID:706567 发表于 2021-6-12 10:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义一个变量uchar unsigned=i;怎么实现i++  i--,都的0-50变化,++还好办,大于50,等于0,就是--,小于0,变量i就溢出了,不知道 跑到哪里去了,这样的情况怎么搞呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2021-6-12 16:14 | 只看该作者
把 i 不要设置为无符号uchar,设置成有符号char,或者 int。
回复

使用道具 举报

板凳
ID:706567 发表于 2021-6-12 16:31 | 只看该作者
xuyaqi 发表于 2021-6-12 16:14
把 i 不要设置为无符号uchar,设置成有符号char,或者 int。

懵圈啦!
一直认为cahr是两个字节,变量较比,我是为了省空间都设成了ucahr变量。
回复

使用道具 举报

地板
ID:592807 发表于 2021-6-12 16:57 | 只看该作者
unsigned这是一个关键字,你unsigned = i是什么操作
回复

使用道具 举报

5#
ID:706567 发表于 2021-6-12 17:26 | 只看该作者
黄youhui 发表于 2021-6-12 16:57
unsigned这是一个关键字,你unsigned = i是什么操作

这是我贴错了,应该是
#define uchar unsigned char
uchar i;
回复

使用道具 举报

6#
ID:213173 发表于 2021-6-13 08:30 | 只看该作者
//采用不同数据类型代码写法不同

        unsigned char i;

        if(++i>50)i=0;

        if(--i>50)i=50;//当i=0时再减1等于255
/***********************/
        char i;

        if(++i>50)i=0;

        if(--i<0)i=50;
回复

使用道具 举报

7#
ID:706567 发表于 2021-6-15 21:26 | 只看该作者
wulin 发表于 2021-6-13 08:30
//采用不同数据类型代码写法不同

        unsigned char i;

明白了,就是这么简单!
回复

使用道具 举报

8#
ID:706567 发表于 2021-6-16 09:07 | 只看该作者
wulin 发表于 2021-6-13 08:30
//采用不同数据类型代码写法不同

        unsigned char i;

char i;

        if(++i>50)i=0;

        if(--i<0)i=50;
按个改,执行i++没有问题,
i--就有点间题了,5,4,3, 2, 1, 0, /, 50
中间加了个  /  这个啥情况?
回复

使用道具 举报

9#
ID:386001 发表于 2021-6-16 15:29 | 只看该作者
无限飞翔 发表于 2021-6-16 09:07
char i;

        if(++i>50)i=0;

i++/++i , i--/--i,这两个的运算处理过程不一样的,一个是先判定后运算,一个是先运算后判定,所以,我觉得,开始出现的溢出,或者不正常的显示,都是因为对运算符前置与后置的理解误差导致。
回复

使用道具 举报

10#
ID:706567 发表于 2021-6-17 18:07 | 只看该作者
搞定
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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