免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 18097 | 回复: 18
打印 上一主题 下一主题

char 和 unsigned char有什么区别? [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-06-18 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-02 10:26 |只看该作者 |正序浏览
请问unsigned char是什么类型?主要用于哪些地方?
和char 有什么区别?


什么时候用char, 什么时候用unsigned char?
char 是指哪些字符,unsigned char 是指哪些类型?

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
19 [报告]
发表于 2008-10-06 11:20 |只看该作者

使用场合之一:判断字符是否为汉字

一个汉字的GB编码为2个字节,高字节的最高位为1,即高字节>127。通常需要转换为unsigned char进行判断,请大家注意这一点。如:

while (*p)
{
if ((unsigned char)*p > 127)  //汉字
{
    p += 2;
}
else  //标准的ASCII字符
{
    p += 1;
}
}

论坛徽章:
0
18 [报告]
发表于 2008-10-06 11:05 |只看该作者
原帖由 cobras 于 2007-2-4 11:22 发表
需要负数运算时使用signed char,不需要时使用unsigned char

ooooo

论坛徽章:
0
17 [报告]
发表于 2008-10-06 10:34 |只看该作者
学习了

论坛徽章:
0
16 [报告]
发表于 2008-07-16 10:12 |只看该作者

回复 #15 haohao06 的帖子

左移?!

论坛徽章:
0
15 [报告]
发表于 2008-07-16 09:41 |只看该作者

回复 #11 cobras 的帖子

unsigned int左移是逻辑左移,int左移是算术左移。。。。。仅仅在gcc和vc上试过。。别的编译器我不知道是不是

论坛徽章:
0
14 [报告]
发表于 2008-07-16 08:55 |只看该作者
做加法溢出时再想这个问题就很明白了:wink:

论坛徽章:
0
13 [报告]
发表于 2008-07-16 00:53 |只看该作者

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
12 [报告]
发表于 2007-02-23 03:16 |只看该作者
原帖由 cobras 于 2007-2-4 11:22 发表
需要负数运算时使用signed char,不需要时使用unsigned char

不同意, 因该是只要不牵涉到整数的二进制表示的问题的时候就使用signed int(如果int的范围不够就使用long, 再不行就使用高精度运算库). unsigned不是易驯服的东西.

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
11 [报告]
发表于 2007-02-04 11:22 |只看该作者
需要负数运算时使用signed char,不需要时使用unsigned char
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP