• go byte类型-慢慢理解


    对于一个前端背景的人来说,理解byte类型真是一件费力的事。因为js里并没有byte,作为静态类语言go,肯定要与底层打交道,就不得不学习byte类型。

    byte就是字节的意思,一个字节就是8个二进制位。2的8次方-1=127。uint8,无符号整形,占8位,正好也是2的8次方-1,127.

    1,定义byte(字符)类型

    var aa byte = 'a' // 单个字符 byte(uint8类型的别名)。 可以和整型类型直接相加减
    fmt.Printf("%c ", aa) // a 占位符%c表示字符
    fmt.Printf("%T ", aa) // uint8 (byte类型其实就是uint8类型的别名)

    再看看ASCII的定义:

    ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符

    正好也是128个字符,对应一个字节,对应uint8

    这就好理解,单个字符为什么是byte了。因为0-9,a-z,A-Z都对应一个ASCII值,字符就在其中。

    如果用十六进制表示,正好占两位。0x_ _两位来表示。

    美国人民真幸福,这128个字符就能满足需求了。

    别的国家,开始在此基础上扩充。

    详细参考:http://c.biancheng.net/view/18.html

    2,字节数组

    就是一个数组,里面每一个元素都是字符,字符又跟字节划等号。所以字符串和字节数组之间可以相互转化。

    1. string 转为[]byte
    var str string = "test"
    var data []byte = []byte(str)

    2. byte转为string
    var data [10]byte
    byte[0] = 'T'
    byte[1] = 'E'
    var str string = string(data[:])

  • 相关阅读:
    Net使用RdKafka引发异常RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常
    mysql数据与Hadoop之间导入导出之Sqoop实例
    如何将mysql数据导入Hadoop之Sqoop安装
    常见的几种Flume日志收集场景实战
    Restful服务应不应该在URI中加入版本号
    sudo
    shell实现SSH自动登陆
    使用465端口加密发邮件
    linux下c++如何输入不回显
    tmp
  • 原文地址:https://www.cnblogs.com/zccst/p/14054009.html
Copyright © 2020-2023  润新知