字和字节的区别

字节(byte)与字符(char)的区别

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

字符(Character)计算机中使用的字母、数字、字和符号, 比如’A’、’B’、’$’、’&’等。

一般在英文状态下一个字母或字符占用一个字节, 一个汉字用两个字节表示。

字节与字符:

ASCII 码中, 一个英文字母(不分大小写)为一个字节, 一个中文汉字为两个字节。

UTF-8 编码中, 一个英文字为一个字节, 一个中文为三个字节。

Unicode 编码中, 一个英文为一个字节, 一个中文为两个字节。

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

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

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

在 Golang 中, 如果字符串中出现中文字符不能直接调用 len 函数来统计字符串字符长度, 这是因为在 Go 中, 字符串是以 UTF-8 为格式进行存储的, 在字符串上调用 len 函数, 取得的是字符串包含的 byte 的个数。

每个中文字, 占3个byte。所以:

str1 := “Hello,世界”

fmt.Println(len(str1)) // 打印结果:12

英文字符仍是占一个byte。

字和字节的区别

Go语言的字符有以下两种:

一种是 uint8 类型, 或者叫 byte 型, 代表了 ASCII 码的一个字符。byte 是 uint8的别名

另一种是 rune 类型, 代表一个 UTF-8 字符, 当需要处理中文、日文或者其他复合字符时, 则需要用到 rune 类型。rune 类型等价于 int32 类型。

案例: 统计中文的个数

package main import ( "fmt" "unicode" ) func ChineseCount(str1 string) (count int) { for _, char := range str1 { if unicode.Is(unicode.Han, char) { // 判断是否是中文 count++
        }
    } return } func main() {
    str_obj := "Hello你好WorldGo语言真强" result := ChineseCount(str_obj)
    fmt.Println("result=", result) // 6 个 统计中文的中文个数 }

案例: 字符串元素的个数(英文一个, 中文一个)

package main import ( "fmt" "unicode/utf8" ) func main() {
    a := "I love my family!我爱我的家人!" // 方法一: b := []rune(a) //转换为rune:一个字符对应一个元素 (共24个) fmt.Println(len(b)) //获取元素的个数(24) //方法二: 更简单的方法 utf8.RuneCountInString 专门用于计算字符数 fmt.Println(utf8.RuneCountInString(a)) // 24 for _, v2 := range b {
    		fmt.Printf("%c", v2) //输出结果:I love my family!我爱我的家人! }
}

案例: 获取字符串字节的个数(英文一个字节, 中文三个字节)

package main import ( "fmt" ) func main() { var str string = "abc郑闯" //共9个字节 charray := []byte(str) //转换为byte: 一个字节对应一个数组元素 fmt.Println(len(charray)) //获取元素的个数,结果为9 for _, v := range charray {
        fmt.Printf("%c", v) //输出结果为:abcéé¯ }
}

字节数和字符数区别:

字节数: 因为一个字节, 中文三个字节;

字符数: 英文一个, 中文一个;

该文章投稿作者:李小白,如若转载,请注明来自鱼鳞桐程网:https://www.yulintongcheng.com/283074.html

(0)
李小白的头像李小白
上一篇 17/10/2024 23:27
下一篇 19/10/2024 03:31

网友常看推荐

  • 国内知名的灵活用工平台有哪些 灵活用工平台哪个好

    对于许多行业的企业来说,特别是劳动密集型行业,在开展临时性业务的时候,往往需要找到大量的临时工或者外包团队来完成工作。但是由于用工需求大,需要大量的人手,因此企业就会出现临时人员构…

    智能网络 15/07/2023
    04160
  • 粽子烧40分钟放一晚上熟吗

    端午节将至,又到了吃粽子的时候了。大家快自己动手做粽子吃吧。那么糯米粽子煮多长时间才会熟呢?下面就一起来看看吧。 包粽子的米可以选择很多,其中糯米一直是大家的首选。糯米粽子也是大家…

    24/03/2023
    06220
  • 无接触全自动电脑洗车机多少钱一台?洗的干净吗?

    目前,我国机动车保有量将超3亿辆,其中69个城市超过100万辆,31个城市超过200万辆,13个城市超过300万辆。2020年受特殊原因冲击,人们出行受限,消费需求萎缩,工厂生产停滞,全球汽车产业链受到波及。但是,我国汽车行业克服重重困难,化解不利因素,率先复苏。

    新经济形势下,越来越庞大的汽车保有量,为我国创造除了上千亿级别的汽车“存量经济”市场。

    智能网络 11/01/2023
    05600
  • 文科男生学什么专业好

    现在也有不少男生在高中选择了文科,那么他们将来报考院校时能选择哪些专业呢?未来的就业方向又有哪些呢? 1、偏外向的男生适合的专业——营销类 营销类专业通常需要较好的沟通表达能力,有…

    18/07/2023
    06370
  • 即热式电热水器好还是储水式好

    电热水器的安全性比较高,不会产生燃气泄漏,或者一氧化碳等有毒有害的气体,只要保证电路安全,就可以。而且电热水器受环境的限制比较小,一般在装修前提前埋好电线就可以。 常见的电热水器主…

    21/02/2024
    02610
  • 图片在word里显示一半

    当我们在使用Word编辑文档插入图片,有时候会发现图片显示不完整,显示一半或显示一小部分。遇到这种word文档里的图片显示不完整应该如何解决? 系统环境:WIN7 word版本:w…

    17/07/2023
    05740
  • 社会考生怎么报名参加高考

    亲自到县区高招办报名(一般为当地教育局)。需要带上户口本、身份证以及同等学历证明(高中文凭、中专文凭或《学业水平测试合格证》),履行填写手续。在职干部和工人带学历证明及单位介绍信;…

    10/07/2023
    06440
  • 灵活用工平台好处 一站式灵活用工平台

    如今有很多的企业在开展业务的时候,都会选择灵活用工这种模式,相信很多人应该都知道,目前这种模式是比较流行且受企业青睐的。那么灵活用工平台好处和功能有哪些?一站式灵活用工平台结算系统…

    智能网络 15/07/2023
    06100
  • 互联网和物联网有什么区别

    互联网是指通过计算机网络连接起来的全球范围内的计算机系统和设备,用于实现信息的传递和共享。而物联网是指通过互联网连接起来的各种物理设备和传感器,使其能够相互通信和交互。互联网主要关…

    19/10/2024
    04980
  • 网络延迟高怎么解决?网络不稳定怎么解决?

    网络延迟就是在传输介质中传输所用的时间,即从报文开始进入网络到它开始离开网络之间的时间太长,网络延迟只能减少,不能彻底解决。 网络延迟是网游玩家最不能忍的,它直接影响游戏战绩,为了…

    15/07/2023
    07380

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注