字和字节的区别

字节(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
    04540
  • 电脑怎么删除隐藏的流氓软件

    平时我们在使用电脑过程中,可能会遇到一些软件在安装过程中会自动绑定一些恶意软件的情况,教你一招通过电脑本身自带的恶意软件删除工具,轻松可以搞定电脑中隐藏的恶意软件。 1、首先通过W…

    18/04/2022
    09080
  • 台积电的光刻机哪里来的

    台积电的光刻机是荷兰阿斯麦尔的。 首先、最先进的光刻机ASML确实是荷兰的,但ASML背后的控股人是台积电、三星等半导体厂家,大家的就是鱼和水的关系 其次、三星和台积电自己的工艺并…

    24/02/2024
    06880
  • 愉悦宝贝提醒您:婴儿游泳请切记这些注意事项

    现在婴儿游泳在育儿圈是非常流行的,经研究发现,婴幼儿游泳对宝宝的身体发育、运动能力、免疫力、智力发育、心理健康方面都有好处。因此,很多家长都喜欢带宝宝去婴儿游泳馆游泳,但是愉悦宝贝…

    智能网络 14/04/2023
    04330
  • 适合女生开的小型车

    七夕节又双叒叕到了!你还在给你的女朋友送花吗?现在都2022了,送花会不会太low了点?人家豪气的男朋友已经开始盘点给女朋友买车了。为了节省大家的时间,下面就给诸位精选挑选了四款微…

    10/07/2023
    04710
  • 开婴儿游泳馆是如何赚钱的?

    婴幼儿水育早教行业在近年来的飞速发展,已经逐渐被大家熟识与接受。随着家长们育儿观念的改变,对于婴幼儿早教程度的重视,他们意识到游泳对孩子是十分有好处。因此,不少投资者也纷纷想开一家…

    智能网络 14/04/2023
    04060
  • 5种常用的电脑截图技巧

    相信在使用电脑办公、娱乐的时候,都会用到截图操作。 而电脑截图的方式也是多种多样,部分截图操作还需要借助某种介质才能保存为图片。 此次小编就整理了电脑常用的 8 种截图方…

    18/04/2022
    07410
  • 灵活用工平台发工资 灵活用工薪酬代发平台

    大部分企业每个月的薪资及佣金、提成的发放,都会涉及到一个成本以及财税成本的支出,导致企业综合成本逐年增加,发展压力加大。此时很多企业就会选择能提供代发薪业务的灵活用工薪酬代发平台来…

    15/07/2023
    04500
  • 手机弯了用着危险吗

    手机弯了用着很危险,手机弯了的话,在使用的时候容易导致手机的线路短路,容易引发爆炸的情况,会对人造成很大的伤害,手机弯了要及时拿到手机维修店里面去修理,修理好了才能够去使用,这样才…

    21/02/2024
    02330
  • excel怎么冻结我选定的区域

    工作中使用Excel查看数据时,有时由于数据行列太多,而我们只需要查看部分数据,或者需要对照表头看数据时,我们一般使用隐藏行列,但是隐藏行列太频繁会导致操作繁琐,不便利提高效率,因…

    18/04/2022
    01.3K0

发表回复

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