极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11647|回复: 1

关于有符号和无符号传参问题

[复制链接]
发表于 2015-8-15 22:37:53 | 显示全部楼层 |阅读模式
这个是简化的源码,本来是为了将GB2312的机内码转换成字模的。

  1. void add(char *out) {
  2. unsigned char a = *out - 0xa0;
  3. }
复制代码


我们知道对于中文字符来说,最高位都是1表示非ASCII码,unsigned char a = *out - 0xa0; 本意是一个正数减一个正数,得到正数。可是结果却是错的呢;
回复

使用道具 举报

发表于 2015-8-16 00:51:12 | 显示全部楼层
你的原意想做什麼, 結果是什麼都不說.....

本意是一个正数减一个正数,得到正数。可是结果却是错的呢; - 難道你的  unsigned char a 會是負數嗎?
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 10:33 , Processed in 0.048464 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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