历史问题
大家都知道计算机是洋鬼子造的,底层实现是二进制的。 也就是说,在计算机中,二进制,简单的0和1可以代表世界上的一切一个汉字多少字节,可以创造世界上的一切。
一命二,二命三,三命万物。
不知道创作者有没有提到我大中华博大精深的文化。
少量
这里所说的位指的是二进制位,即0或1,都可以表示1。 英文名是bit。
字节
一个字节其实就是一个单位,我们通过这个单位就知道了一个文件的大小。 这就好比你去菜市场卖肉,问店家一斤猪肉是多少。 在计算机世界里,我们经常会问一个字节是多少猪肉。 如果知道一斤猪肉的大概大小,炒几道菜就够了。 那么一个字节的文件有多大,能装多少字一个汉字多少字节,你就有一个大概的了解了!
其实我们平时接触比较多的是M、K、G,对吧?
其实都是计量单位。 byte的英文表示是byte(为什么我打byte的时候搜狗让我想起了避孕套?)。 它们之间的转换关系如下:
嗯,他们之间的关系大家都知道了吧? 那我们平时的流量套餐呢? 1G? 大概1*1024*1024=1048576KB。 比如我们平时浏览一篇文章用20K,看一张图片用40K,听歌用3M,看个电影用100M。 能用多少流量,大家自己算吧!
那么,字节和位有关系吗?
当然存在,只要计算机世界中出现的任何东西都与比特有关系!
一个字节等于 8 位。 也就是说,8个0和1的组合代表一个字节。
00000000 11111111 可以表示一个字节。
特点
角色变得简单! 就是我们平时看到的所有字母、符号、中文、法文、日文等等。 c是一个字符,也是一个字符。
说到字符,就不得不说说编码格式。 这里我只说比较常用的编码格式。 其他的编码格式,可以自行百度了解研究。
ASCII码
国外鬼子最先搞出来的编码格式。 在这种编码下,一个字符需要用一个字节来表示,也就是说占用8位。 这样0和1就有256种组合,可以代表256个不同的字母。 对于英语来说,这已经足够了。
统一码
很显然,洋鬼子在设计ASCII码的时候,并没有考虑到远东地区博大精深的文化。 新华字典里有多少个汉字? 显然256是远远不够的! 广场呢? 65535? 够了吗? 不够?
这里说说网上经常出现的一个问题,在UNICODE编码中,一个汉字占多少位数。 很多老程序员都会这样说:“一个汉字占两个字节!”
GBK编码是2个字节,unicode编码是错误的! 事实上,在很多情况下,汉字的数量完全取决于编码格式。 编码格式不难写,所以对汉字的编码有很多说法:ubuntu12.04一个汉字是三个字节!
它只规定了符号的二进制代码,但没有规定这个二进制代码应该如何存储。
如上,unicode编码的说明。
也就是说,在unicode编码下,一个汉字可能是2个字节,也可能是3、4个字节。
utf8
我们经常使用这种编码格式吗?
编码格式其实是基于unicode的。 事实上,unicode 被许多编码格式用作基本编码。
在utf8编码格式中,英文字母占一个字节,和ascii完全一样。
汉字或其他字符占用1-4个字节。
字符
这里我们说说java中的char类型。
在java中,char类型占用2个字节,16位。
可以通过以下方式给char类型变量赋值: