| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 851 人关注过本帖
标题:提问:第一个回答正确的可单独得15分
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:20 回复次数:22 
提问:第一个回答正确的可单独得15分
全角空格的 码值 是多少
搜索更多相关主题的帖子: 多少 
2013-03-03 09:36
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
自己坐庄:

在unicode和ASCII中,空格的值都是0x20即\u0020 而且,中文(全角)空格的Unicode值是\u3000,

不知道对不对

DO IT YOURSELF !
2013-03-03 09:43
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:20 
char chr[8] = { " | ab" };
                a1 a1 a3 fc 20 61 62 00
全角用了两个字节来保存:a1 a1, 半角为20  (十六进制)

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-03 09:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用yuccn在2013-3-3 09:48:21的发言:

 char chr[8] = { " | ab" };
                a1 a1 a3 fc 20 61 62 00
全角用了两个字节来保存:a1 a1, 半角为20  (十六进制)
是啊 我测试也是 a1 a1  (g=ffffffa1   l=ffffffa1)

但网上搜是3000

DO IT YOURSELF !
2013-03-03 09:49
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
内存打印出来看就看出来了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-03 09:50
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
g=ffffffa1
是不是你用其他格式输出了?比如你用%d 输出,那么把其他的位输出了,因为char只有1个字节,int 是4字节的。。


我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-03 09:55
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 6楼 yuccn
#include<stdio.h>


int main()
{
    char* test=" ";
    printf("g=%x   l=%x\n",test[0],test[1]);
    return 0;
}

DO IT YOURSELF !
2013-03-03 09:57
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
char 是有符号的吧,符号的ASCII码只在0-127之间,a1 在有符号中就是就是负数(-95)了,
输出是%x是四个字节的,所以就是ffffffa1(四个字节-95的编码)了


我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-03 10:26
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
unsigned char test[16]= {" 123acc a"};
     for (int i = 0; i < 8; i++) {
         printf("\\0x%x",test[i]);
     }

用无符号就可以正确输出了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-03 10:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
说过多少次,对字符类数据关心到内码,是进入误区了。不同的编码体系,有不同的内码,a1a1是GB2312编码下的全角空格内码,但在Unicode下是3000,在UTF-8下是e38080,你认得哪个?

[ 本帖最后由 TonyDeng 于 2013-3-3 11:14 编辑 ]

授人以渔,不授人以鱼。
2013-03-03 10:50
快速回复:提问:第一个回答正确的可单独得15分
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011567 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved