字和字节的区别

字节(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

网友常看推荐

  • 3.15|愉悦宝贝游泳馆用诚信之光,照亮消费信心

    一年一度的消费者权益到了,今天“3·15”晚会的主题是“用诚信之光照亮消费信心”。随着经济的快速发展,人们的生活水平提高,消费能力的提升,需求也越来越大。为了更好的保护消费者的权益…

    智能网络 14/04/2023
    05280
  • 屏下指纹和侧面指纹哪种好

    真心话屏下指纹没有侧边指纹好用,侧边指纹太好用了。用了几次就很讨厌面容解锁和屏下指纹解锁。先进生产力也是要被资本家打败。 侧边指纹比起屏下指纹是更好用的,表现在响应速度以及识别成功…

    28/09/2024
    04970
  • 手机掉水里屏幕失灵怎么办

    解决方法:纸巾擦干水分、电吹风去吹、电热包烘干、关机自然晾干、大米速干法等。 一、擦干水分 用纸巾吸干手机上的液体,将手机缝隙中的水吸出来,并且尽可能的吸干手机里的水分。吸水时,尽…

    19/07/2023
    05290
  • 代发佣金平台有哪些 灵活用工平台代发

    现如今有很多的企业在季节性繁忙的时候,就会选择招聘大量的兼职人员,因为有的企业繁忙是季节性的,或者业务是临时性的,要是找长期工的话,那么成本就会比较高。虽然找到兼职人员可以解决企业…

    智能网络 15/07/2023
    05210
  • 五一带孩子去哪里玩?这个地方值得一去

    五一假期将至,相信大家早已按捺不住蠢蠢欲动的心,纷纷规划着出游计划了。想好带孩子去哪里玩了吗?不想出去旅游,觉得三天时间太短,路上太堵。但是呆在家又觉得白白浪费了假期,怎么办?如果…

    智能网络 18/05/2023
    04590
  • 屏幕有划痕怎么修复手机

    如今手机已经是我们生活当中人人都会有的东西了,而且现在不管是大人还是孩子都会手机不离手。所以我们的手机在用的时间久了之后,屏幕上多少都会出现划痕,就算是贴手机膜也没有办法避免。这些…

    18/07/2023
    05830
  • 华为旗下手机品牌有哪些

    不像苹果手机的分类这么简单,国内不论是华为、小米还是OPPO、vivo都有多个系类。那么我们今天就和大家谈谈国内市场占有率最大的华为手机分类,估计不是对数码比较了解的朋友,都会傻傻…

    11/08/2023
    04350
  • 小米电视去广告

    最近发现很多人因为第一次使用小米电视,对小米电视的操作不太熟练,以至于被小米电视上的各种广告弄得很抓狂,现在给小米电视的用户提供一种去广告的方法,希望可以帮到各位小米电视的用户。 …

    25/07/2023
    05340
  • 代发佣金平台有哪些 代发薪资机构哪个靠谱

    如今,很多企业会面临薪资发放难、支出无发票等问题。比安财穗也了解到,部分企业以工资形式发放外包业务服务费,造成个人需要承担高额个税;而有的企业存在真实个人外包业务,但在费用结算后,…

    智能网络 15/07/2023
    04860
  • 苹果数据线为什么老是坏

    苹果官方数据线容易坏,主要因为“材料”,或者说因为苹果追求“环保”,牺牲了耐用性。苹果为了环保,选用了TPE橡胶线材。TPE材料的好处是:安全无毒、更环保,并且很轻很软,手感好,阻…

    19/02/2024
    03420

发表回复

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