zoukankan      html  css  js  c++  java
  • 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[:])

  • 相关阅读:
    HDU
    矩形嵌套(DP)
    HDU
    HDU-1003 Max Sum
    Manacher算法—最长回文串
    Codeforces Round #460 (Div. 2) A B C D
    HDU 4540 威威猫系列故事——打地鼠 (简单DP)
    UVA 129 Krypton Factor(DFS 回溯)
    Codeforces 918A Eleven 918B Radio Station
    挑战程序设计竞赛(第2版)第112页勘误
  • 原文地址:https://www.cnblogs.com/zccst/p/14054009.html
Copyright © 2011-2022 走看看