如何写代码查看÷对应的ASCII码?

heartgoon2010 2010-05-26 11:09:41
查看A对应的ASCII码:
int c = 'A';
std::cout << c << std::endl;
那么查看÷对应的ASCII码?
...全文
373 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lirg8405 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 heartgoon2010 的回复:]
to lirg8405
不是吧,A的ASCII编码是65,上面的代码能得到65
÷的ASCII码是247,上面的代码得不到247。
而且÷是双字节的
[/Quote]
呵呵,不好意思,习惯反应是%
不是标准键盘上的我不清楚
windsting 2010-05-26
  • 打赏
  • 举报
回复
“÷”根本就不是一个ASCII的编码,
GB2312下是:0xA1C2
Unicode16LE:U+00F7

我的方法是,开启文本编辑器的“显示光标所在处的字符的编码”,
然后建一个所需编码的文本文档,把字符复制进去看。
比方说EmEditor就可以。
heartgoon2010 2010-05-26
  • 打赏
  • 举报
回复
to lirg8405
不是吧,A的ASCII编码是65,上面的代码能得到65
÷的ASCII码是247,上面的代码得不到247。
而且÷是双字节的
lirg8405 2010-05-26
  • 打赏
  • 举报
回复
和上面一样
mymtom 2010-05-26
  • 打赏
  • 举报
回复
把÷复制到UE中,然后按Ctrl-H,如果看不到,再次按Ctrl-H
白云飘飘飘 2010-05-26
  • 打赏
  • 举报
回复
像上面说的,这些编码是中文系统中是非法的,小于128才管用
heartgoon2010 2010-05-26
  • 打赏
  • 举报
回复
to zhao4zhong1
这位朋友,按你的操作输入246显示的是问号?,
按247,248或者249都是显示?,这是怎么回事啊
blh 2010-05-26
  • 打赏
  • 举报
回复
#include <stdio.h>


int main()
{
char c = '÷';

printf("%c=%d\n", c, c);
printf("%c\n", -9);
return 0;
}
heartgoon2010 2010-05-26
  • 打赏
  • 举报
回复
to lhcwjy
太感谢你了,太佩服你了!这位朋友,能不能跟你认识一下?
duanhjlt 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 chinazhangjie 的回复:]
unicode 是00f07
[/Quote]
right
独酌逸醉 2010-05-26
  • 打赏
  • 举报
回复
unicode 是00f07
赵4老师 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 heartgoon2010 的回复:]
to zhao4zhong1
楼上的朋友起名很特别啊,是做哪方面工作的啊
你说的操作不了啊
[/Quote]
你笔记本键盘按小键盘费劲吧
独酌逸醉 2010-05-26
  • 打赏
  • 举报
回复
00f07
白云飘飘飘 2010-05-26
  • 打赏
  • 举报
回复
Windows系统都有一个默认代码页,这个代码页决定的系统,从而也决定了应用程序只能使用一个特定的字码集,对于中文来说就是GB字符集,ASCII字符集的前128个在各种字符集中是通用的。对于扩展的部分,对GB字符集来说是非法的。当我们键入÷时,它已经被编码为:0xA1C2,即使你把一个字符变量赋值为247,它也是不能显示的,因为GB字符集中并没有这个字符。当然查看它的编码还是可以的:
wchar_t wchar;
char c;
MultiByteToWideChar(936,0,"÷",2,&wchar,1);从GB转换为Uniocode
WideCharToMultiByte(1252,0,&wchar,1,&c,1,NULL,NULL);显式从Unicode转换到ANSI字符集
cout<<c<<endl;这样不会显示
cout<<(int)(unsigned char)c<<endl;
heartgoon2010 2010-05-26
  • 打赏
  • 举报
回复
to lhcwjy
其实就是想知道A1C2与247为什么是等价的。
heartgoon2010 2010-05-26
  • 打赏
  • 举报
回复
to lhcwjy
太高兴了,又看到你来了。你说的是对的。
但是有两点不明白,(1)扩展ASCII码只是用一个字节编码的,为什么这里是两个字节呢?
(2)查表可知÷的ASCII码值为247,如果我想得到247,该如何写代码呢?
希望你能帮忙解答一下,先谢了!
白云飘飘飘 2010-05-26
  • 打赏
  • 举报
回复
VC下字符常量最多可以对四个字符进行编码,'a','ab','abc','abcd'都是合法的,
汉字及符号是不超过两个字节,所以是可以编码的,'÷','中国',都是合法的,
所以楼主的方法是可以查看编码的
int c = '÷';
std::cout <<hex<< c << std::endl;
输出:A1C2
heartgoon2010 2010-05-26
  • 打赏
  • 举报
回复
to zhao4zhong1
楼上的朋友起名很特别啊,是做哪方面工作的啊
你说的操作不了啊
赵4老师 2010-05-26
  • 打赏
  • 举报
回复
在cmd窗口里面输入
chcp 437
然后按住Alt键不放,依次按小键盘上的2、4、6键,再松开Alt键看看显示什么。
所以说除号的ASCII码是246没错。
heartgoon2010 2010-05-26
  • 打赏
  • 举报
回复
快来人看看啊
加载更多回复(2)

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧