• 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[:])

  • 相关阅读:
    使用Dagger2做静态注入, 对比Guice.
    利用Cglib实现AOP
    Guice之IOC教程
    layui使用心得
    Protocol Buffer序列化对比Java序列化.
    IE之页面加载慢.
    浏览器Agent大全 (含IE 11, Edge)
    ASpectJ对AOP的实现
    Spring之AOP
    创建自己的加密货币MNC——以太坊代币(二)
  • 原文地址:https://www.cnblogs.com/zccst/p/14054009.html
Copyright © 2020-2023  润新知