java基础——字符与字节的区别(字符 字节 区别)

createh53个月前 (01-26)技术教程29

字符与字节的区别

1、计算机存储信息的最小单位,称之为位(bit),音译为比特,二进制的一个“0”或一个“1”叫一位。

2、计算机存储容量基本单位是字节(Byte),音译为拜特,8个二进制位组成1个字节。一般而言:一个标准英文字母占一个字节位置,一个标准汉字占二个字节位置。

3、计算机存储容量大小以字节数来度量,1024进位制:

  1024B=1K(千)B

  1024KB=1M(兆)B

  1024MB=1G(吉)B

  1024GB=1T(太)B

  以下还有PB、EB、ZB、YB 、NB、DB,一般人不常使用了。

4、字符是一种符号,同以上说的存储单位不是一回事。

=============================================================================

1个字节等于8个bit位,每个bit位又0/1两种状态,也就是说一个字节可以表示256个状态,计算机里用字节来作为最基本的存储单位。

一般来说,英文状态下一个字母或数字(称之为字符)占用一个字节,一个汉字用两个字节表示。在不同的编码方式下一个字符占的字节不太一样。

按照ANSI编码标准,标点符号、数字、大小写字母都占一个字节,汉字占2个字节。按照UNICODE标准所有字符都占2个字节。

=============================================================================

(一)“字节”的定义

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

(二)“字符”的定义

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

(三)“字节”与“字符”的区别

它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。

不同编码里,字符和字节的对应关系不同:

①ASCII码中:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。

一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。

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

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

      符号:英文标点占一个字节;中文标点占两个字节。

      举例:英文句号“.”占1个字节的大小;中文句号“。”占2个字节的大小。

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

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

相关文章

Java------字节流和字符流(I)(java中什么是字节流)

字节流:读写字节文件,通常使用字节流,如:二进制文件,.jpg,.mp3,.avi,.exe,.com,.dll windows平台的执行文件:.exe,.com,.dll 字符流:读写字符文件,通常...

Java 字节流和字符流是什么?怎么用?

Java IO提供了两种流:字节流(byte stream)和字符流(character stream)。字节流用于处理二进制数据,而字符流则用于处理文本数据。Java字节流用InputStream(...

java安全编码指南之:字符串和编码

简介字符串是我们日常编码过程中使用到最多的java类型了。全球各个地区的语言不同,即使使用了Unicode也会因为编码格式的不同采用不同的编码方式,如UTF-8,UTF-16,UTF-32等。我们在使...

Java数据类型中,字符型char变量能存一个中文汉字吗,为什么?

char可以存储一个中文汉字,因为Java中使用的编码是Unicode,一个char类型占2个字节(即16比特),所以放一个中文是没问题的。 Unicode编码意味着字符在JVM内部和外部有不同的表现...

带你学java核心技术图形程序设计:颜色+为文本设定特殊字体+图像

颜色使用Graphics2D类的setPaint方法可以为图形环境上的所有后续的绘制操作选择颜色。要想绘制多种颜色,就需要按照选择颜色,绘制图形,再选择颜色,再绘制图形的过程实施。Color类用于定义...

一个字符串中到底能有多少个字符?我竟然算错了

依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是 \u0000 (0),最大值是\uffff(65535), 也就是一个字符以2个字节来表示,难道Java最多只能表示...