A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵浩霖 中级黑马   /  2016-3-25 21:41  /  1395 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

char型变量中能不能存贮一个中文汉字?为什么? 一个字符占几个字节?
我记得C语言里好像是放不下去的,为什么我试了下能出来?
还有个是:
char = 12;编译的时候没有问题,可是什么也没有输出?这是为什么?

17 个回复

倒序浏览
有可能是软件问题导致没输出,只不过输出的值不是12,可能是个符号,应为在计算机内,用的是2进制。输入输出可以用 10进制,16进制,8进制。当输出格式用 %c 时,它们都可以输出为字符,当输入格式用 单个字符输出 时,它们都可以把输入的字符转为 整型ascii码值。

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
你电脑是不是有问题?
回复 使用道具 举报
JAVA中char类型可以存放汉字,但所占的字节数不确定。笔画简单的占一到两个字节复杂的汉字占的多点
回复 使用道具 举报
char = 12; 这个是错的   "char" 是关键字 "char" 可容纳单个字符的一种基本数据类型  应该写成 char a=12;  这样就有输出了    是个符号.

java采用unicode,2个字节(16位)来表示一个字符, 无论是汉字还是数字字母,或其他语言。
char 在java中是2个字节。
所以可以存储中文

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 赞一个!

查看全部评分

回复 使用道具 举报
feng9639 发表于 2016-3-25 22:35
char = 12; 这个是错的   "char" 是关键字 "char" 可容纳单个字符的一种基本数据类型  应该写成 char a=12; ...

unicode是什么?跟ascll有什么区别?
回复 使用道具 举报
char是可以储存一个汉字字符的 例如'中'   char的范围是0-65535吧应该,用的是unicode编码
回复 使用道具 举报
char只占一个字节 而存储一个汉字需要两个字节
回复 使用道具 举报
本帖最后由 xiaofushen 于 2016-3-26 01:13 编辑
赵浩霖 发表于 2016-3-25 22:54
unicode是什么?跟ascll有什么区别?

这个问题简单说一下吧.楼主要深究可以去网上查资料.我帮楼主找了一个,可以大致回答一下楼主:
UNICODE 是目前用来解决 ASCII 码 256 个字符限制问题的一种比较流行的解决方案.大家知道,ASCII 字符集只有256个字符,用 0-255 之间的数字来表示.包括大小写字母、数字以及少数特殊字符;如标点符号、货币符号等.对于大多数拉丁语言来说,这些字符已经够用.但是,许多亚洲和东方语言所用的字符远远不止256个字符.有些超过千个.人们为了突破 ASCII 码字符数的限制,试图用一种简单的方法来针对超过256个字符的语言编写计算机程序.于是 UNICODE 应运而生.UNICODE是在更大范围内将数字代码映射到多种语言的字符集.
对于一开始楼主的问题,5楼正解.

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
汉字是两个字节,char也是两个字节 ,是可以放的。char=12,这个时候 输出的是在电脑里12对应的符号,如果没有对应的,输出是空的,有的话就会显示
回复 使用道具 举报
赵浩霖 发表于 2016-3-25 22:54
unicode是什么?跟ascll有什么区别?

ASCII 是用来表示英文字符的一种编码规范。每个ASCII字符占用1 个字节

   Unicode与ASCII一样也是一种字符编码方法,它占用两个字节(0000H—FFFFH),容纳65536 个字符,这完全可以容纳全世界所有语言文字的编码。在Unicode 里,所有的字符都按一个字符来处理, 它们都有一个唯一的Unicode 码。
Unicode 能够使计算机实现跨语言、跨平台的文本转换及处理

回复 使用道具 举报
aomingchao 发表于 2016-3-26 00:04
char只占一个字节 而存储一个汉字需要两个字节

C里char是1个字节,Java里是2个
回复 使用道具 举报
xiaofushen 发表于 2016-3-26 01:09
这个问题简单说一下吧.楼主要深究可以去网上查资料.我帮楼主找了一个,可以大致回答一下楼主:
UNICODE 是目 ...

我也去查查看看
回复 使用道具 举报
feng9639 发表于 2016-3-26 10:32
ASCII 是用来表示英文字符的一种编码规范。每个ASCII字符占用1 个字节

   Unicode与ASCII一样也是一种 ...

欧了,虽然有点不太清楚具体是什么,记住就行了
回复 使用道具 举报
char 类型 执行放 单个字符 单个字节  注意: 是单个字符 单个字节   

一个汉字一个字符  一个字符等于两个字节

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 赞一个!

查看全部评分

回复 使用道具 举报
汉字国标是占2个字节,国际上是占3个字节
回复 使用道具 举报
赵浩霖 发表于 2016-3-26 21:15
C里char是1个字节,Java里是2个

多谢提醒!!
回复 使用道具 举报
两个字节
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马