为了账号安全,请及时绑定邮箱和手机立即绑定

为什么慕课网这几个字占了9个字节?

为什么慕课网这几个字占了9个字节?不应该是6嘛?

一个字难道不是占2个?

正在回答

3 回答

每个字符占几个字节是由选用的 字符集字符集编码 决定的,中文字符并不一定占用2个字节。

简单地说,为了表示文字的字符,人们给每一个字符都编了一个数字代码,这样字符代码的合集叫做“字符集”。最常见的字符集就是ASCII,拉丁字母和标点符号及控制字符都有自己的代码。我国发布有GB2312字符集,中文Windows中使用的就是这个。

但不同的国家为不同的语言发布这么多的字符集使用起来很麻烦。它们不一定兼容,同一个代码在不同的字符集中可能代表不同的字符,这也是过去上网时常碰到乱码的原因。为了解决这个问题,人们发明了unicode,目标给予将世界上所有语言的每一个字符一个不同的代码,这样就将全世界的字符都编到了一个字符集中,不会再有切换字符集的麻烦,也不会再有乱码。


前面说的字符集规定了每一个字符的代码,而如何将代码储存起来就成了另外一个问题。比如a在ASCII中的代码是97,那要怎么在计算机中保存这个数字97呢? 记录成浮点数97.0吗? 还是记录成整型97?  这种记录方式就叫字符集编码。

当然我们知道ASCII码就是简单地记录下整型值,每个字符占用1字节。

GB2312的编码方式是记录到2个字节中。

unicode有多种编码方式,最常用的是UTF-8,这是一种可变长度的编码,它将字符记录到1-4个不等的字节中。好处就是可以节省空间,如ASCII字符还是会记录为1个字节,而中文字符一般记录到3个字节中。


现在在网页中使用UTF-8几乎已经成为国际标准了。而在编程方面,编译器会决定采用哪种字符集和字符集编码来保存字符。 看来本站的编译器将汉字记录为3个字节了。

2 回复 有任何疑惑可以回复我~
#1

python小白1_0 提问者

十分感谢啊
2015-10-22 回复 有任何疑惑可以回复我~
#2

define_ray

你写这么多,看都不想看。
2016-01-23 回复 有任何疑惑可以回复我~

为什么我用软件试了一下程序 输出是6啊

0 回复 有任何疑惑可以回复我~
#1

define_ray

这个实在多了~~赞
2016-01-23 回复 有任何疑惑可以回复我~

一个字占了2.5个字节其实,但是内存分配是一个字节4个位,但是一般都是占4个位,相当于你1一个字占了12个位,

所以一个字相当于占用了12个位,当然等于9个字节。

....我好久没看C语言了,但是我知道这个东西..  

不知道有没有说错,希望可以帮助你理解,你可以再学一下汇编,就比较好理解了

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       924437    人
  • 解答问题       20756    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

为什么慕课网这几个字占了9个字节?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信