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

来源:6-8 字符串函数

python小白1_0

2015-10-20 22:06

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

一个字难道不是占2个?

写回答 关注

3回答

  • onemoo
    2015-10-21 00:48:57
    已采纳

    每个字符占几个字节是由选用的 字符集字符集编码 决定的,中文字符并不一定占用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个字节了。

    define...

    你写这么多,看都不想看。

    2016-01-23 17:18:38

    共 2 条回复 >

  • 壁草少年
    2016-01-06 22:04:11

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

    define...

    这个实在多了~~赞

    2016-01-23 17:19:40

    共 1 条回复 >

  • Jaydon_
    2015-10-20 22:57:08

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

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

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

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

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题