如何计算出汉字和西文字符
发布网友
发布时间:2022-04-26 00:33
我来回答
共3个回答
热心网友
时间:2023-10-25 02:58
汉字用两个字节表示,而且每个字节的第一个16进制位都会比8大,如B0
A1就是表示一个汉字,还有D6
D0
和
CE
C4
以及
B0
E6,分别表示一个汉字,共4个汉字
西文字符用1个字节表示,而且第一个16进制位都会比8小,如
57
69
6E是3个西文字符
热心网友
时间:2023-10-25 02:59
西文字符主要是指ASCII码,它用一个字节表示。且这个字符转换成数字之后,该数字是大于0的。
而汉字是两个字节的,第一个字节的转化为数字之后应该是小于0的,因此可以根据每个字节转化为数字之后是否小于0,判断它是否是汉字。
例如,设输入字为strin,则,
If
(strin.at(0)
<
0)
cout
<<
”是汉字”
<<
endl;
else
cout
<<
”不是汉字”
<<
endl;
热心网友
时间:2023-10-25 02:59
因为计算机是由西方人发明的,最方便显示英文、数字以及一些常用标点符号,给它们编了个码叫ascii码,输出字符时,就取字符编码到操作系统的字库中取点阵绘制到屏幕上,ascii码取值为0~255正好占用一个字节;
由于要显示多种语言,比如中文,字符种类比ascii码可容纳的多多了,就采取扩展ascii码的方式,用2个字节表示一个汉字,这两个字节的码值一般都大于128;那么汉字串就是2个字节为一个单位,如果遇到大于128的数字表示字符就取连续的2个字符来显示汉字,如果字符编码小于128呢就是英文字符和常用符号,酱紫
其他语言也采用这样的方法来扩展本地显示。
热心网友
时间:2023-10-25 02:58
汉字用两个字节表示,而且每个字节的第一个16进制位都会比8大,如B0
A1就是表示一个汉字,还有D6
D0
和
CE
C4
以及
B0
E6,分别表示一个汉字,共4个汉字
西文字符用1个字节表示,而且第一个16进制位都会比8小,如
57
69
6E是3个西文字符
热心网友
时间:2023-10-25 02:59
西文字符主要是指ASCII码,它用一个字节表示。且这个字符转换成数字之后,该数字是大于0的。
而汉字是两个字节的,第一个字节的转化为数字之后应该是小于0的,因此可以根据每个字节转化为数字之后是否小于0,判断它是否是汉字。
例如,设输入字为strin,则,
If
(strin.at(0)
<
0)
cout
<<
”是汉字”
<<
endl;
else
cout
<<
”不是汉字”
<<
endl;
热心网友
时间:2023-10-25 02:59
因为计算机是由西方人发明的,最方便显示英文、数字以及一些常用标点符号,给它们编了个码叫ascii码,输出字符时,就取字符编码到操作系统的字库中取点阵绘制到屏幕上,ascii码取值为0~255正好占用一个字节;
由于要显示多种语言,比如中文,字符种类比ascii码可容纳的多多了,就采取扩展ascii码的方式,用2个字节表示一个汉字,这两个字节的码值一般都大于128;那么汉字串就是2个字节为一个单位,如果遇到大于128的数字表示字符就取连续的2个字符来显示汉字,如果字符编码小于128呢就是英文字符和常用符号,酱紫
其他语言也采用这样的方法来扩展本地显示。