字节,字符及占用内存大小情况

Posted fengff

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节,字符及占用内存大小情况相关的知识,希望对你有一定的参考价值。

https://blog.csdn.net/liwenxia626/article/details/70808958

(一)“字节”的定义

字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。

 

(二)“字符”的定义

字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。

 

(三)“字节”与“字符”

它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:

ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。

UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。

Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。

符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。

UTF-32编码中,世界上任何字符的存储都需要4个字节。

 

字节 (byte):8个二进制位为一个字节(B),最常用的单位。计算机存储单位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:
  1B(Byte字节)=8bit
  1KB (Kilobyte 千字节)=1024B,
  1MB (Mega byte 兆字节 简称“兆”)=1024KB,
  1GB (Giga byte 吉字节 又称“千兆”)=1024MB,
  1TB (Tera byte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方)

用一个txt文档做实验
1000个汉字---utf-8编码格式---占用2.95k,接近3k。这是因为utf-8编码格式下1000个字符占3000字节,相当于3000B,接近3k。
---asci编码格式下,2k
---unicode编码格式下,2k

以上是关于字节,字符及占用内存大小情况的主要内容,如果未能解决你的问题,请参考以下文章

一个string字符串占多少内存空间

YUV各种格式的像素占用内存大小计算

C语言结构体占用字节数及存储与空间分配

c关于数组所占内存大小问题

如何计算Java对象所占内存的大小

转载各种数据类型占用内存大小,以及字字节位