免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3381 | 回复: 23
打印 上一主题 下一主题

这个加运算怎么理解? [复制链接]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:57:09C
日期:2016-10-25 16:17:59
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-27 17:03 |只看该作者 |正序浏览
char s = 255;

s += '0';
s -= '0';

s被初始化为255,即此时s的8个bit位全部被置为1,当s += '0';后,s的值为101111(二进制),flag寄存器的进位标志被置位。
当s -= '0'后,s被还原为11111111,推测s -= '0'运算使用了进位;
但是当我这样做时:
char s = 255;
int i;

s += '0';
i = 1 - 2;
s -= '0';

s的值还是被还原为11111111,请问,使用了进位后,为什么进位标志还是可以被使用的?

还有,在实际使用上,一个char型的数据(0~255) +'0'后再 -'0'有什么益处?当然,对于数字0~9这样操作后可以转成相应的字符。
目前,我是觉得这段代码时非代码,多此一举。


论坛徽章:
0
24 [报告]
发表于 2012-02-02 11:40 |只看该作者
是不是LZ想复杂了,这是不是字符和[0-9]的转换啊

论坛徽章:
0
23 [报告]
发表于 2012-02-02 11:27 |只看该作者
我的猜想:

作者的意思本来的意思可能是想把一个数字复制到另外一个地方,但是 如果是 char(0) 的话 strcpy 会出现复制错误。
于是作者 就把 所有的字符专程 字符类型 '0'-'9' 等进行拷贝,然后在减去一个'0'.

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:57:09C
日期:2016-10-25 16:17:59
22 [报告]
发表于 2011-12-30 21:41 |只看该作者
回复 15# zylthinking

额,没仔细看,那有一点小错误,是strncpy。


   

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
21 [报告]
发表于 2011-12-29 09:54 |只看该作者
zylthinking 发表于 2011-12-28 14:52
靠, 果然, 搜了一把, 居然搜出来了


内核里面的strcpy,应该不是libc的.
我记得FB内核里面也有strcpy,不过是内核自己实现的.

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
20 [报告]
发表于 2011-12-29 09:52 |只看该作者
狗气球 发表于 2011-12-29 09:25
char和signed char是两个不同类型。“一般说的是”这话讲得不合适。
    你是不是想表达:char一般 ...

对.

论坛徽章:
0
19 [报告]
发表于 2011-12-29 09:25 |只看该作者
egmkang 发表于 2011-12-27 23:04
char s = 255;
char一般说的是signed char....


    char和signed char是两个不同类型。“一般说的是”这话讲得不合适。
    你是不是想表达:char一般编译器处理成有符号的。

论坛徽章:
0
18 [报告]
发表于 2011-12-28 19:33 |只看该作者

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
17 [报告]
发表于 2011-12-28 14:52 |只看该作者
tempname2 发表于 2011-12-28 14:40
回复 15# zylthinking

我记得在内核里看过strcpy,还看过strdup, snprintf......


靠, 果然, 搜了一把, 居然搜出来了

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
16 [报告]
发表于 2011-12-28 14:40 |只看该作者
回复 15# zylthinking

我记得在内核里看过strcpy,还看过strdup, snprintf......
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP