1 byte = 8bit
1 byte 可以表示 0~255
2 byte 可以表示 0 ~ 65535
字符集
字符集促成了字符和二进制的转换
但是仅仅通过字符集将字符转换为二进制,无法区分边界
字符集的边界问题可以分两种方式解决
1、定长编码
这样的话,边界问题是解决了,但是随之又引来新的问题就是高位补零的方式比较浪费内存
2、 变长编码
根据字符长度选择模版, 从 0~127的占一字节,开头为0, 128 ~ 2047的 占两字节 开头为 110,2048 ~ 65535的 开头为1110
字符串分界
c语言采用 ‘\0来区分边界’, golang 则不同,golang的字符串结构为 内存地址和字符长度,而且字符串是不允许被修改其中字符的,如果要修改就需要重新开辟一段空间将地址将原来的内容拷贝过来并指向原来的变量,或者转换为字节数组进行转换,但是也需要开辟一段内存空间,可以使用unsafe包不添加新的内存便可以修改字符串,目前没必要。
B站链接