小结

栏目: Go · 发布时间: 6年前

内容简介:在计算机中最小的信息单位是bit,也就是一个二进制位,8个bit组成一个Byte,也就是字节。一个存储单元(一个地址),可以存储一个字节,也就是8个二进制位。计算机的存储器容量是以字节为最小单位来计算的,对于一个有128个存储单元的存储器,可以说它的容量为128字节。地址总线,是用来传输数据所在地址的,而32位系统一般有32根地址总线,那么所能传输的最大数据地址就是2^32,这里所指的地址是真实的数据地址,即物理地址。用户在使用计算机时能够访问的最大内存不单是由CPU地址总线的位数决定的,还需要考虑操作系

在计算机中最小的信息单位是bit,也就是一个二进制位,8个bit组成一个Byte,也就是字节。一个存储单元(一个地址),可以存储一个字节,也就是8个二进制位。计算机的存储器容量是以字节为最小单位来计算的,对于一个有128个存储单元的存储器,可以说它的容量为128字节。

地址总线,是用来传输数据所在地址的,而32位系统一般有32根地址总线,那么所能传输的最大数据地址就是2^32,这里所指的地址是真实的数据地址,即物理地址。用户在使用计算机时能够访问的最大内存不单是由CPU地址总线的位数决定的,还需要考虑操作系统的实现。实际上用户在使用计算机时,进程访问到的地址都是逻辑地址,并不是真实的物理地址,逻辑地址是由操作系统提供的,并维护了逻辑地址和物理地址的映射。对于32位的windows操作系统,提供的逻辑地址寻址范围是4G,但是对于这4G的逻辑地址,又要划分出来一份给CPU寄存器、ROM的这些物理地址进行映射,那么剩下和内存条的物理地址进行映射的空间肯定没有4G了,而[64位操作系统的寻址能力就是2的64次方,也就是17179869184G,当然这只是理论值,实际中不可能用到这么大的内存,目前64位windows系统最大只支持128G。而当前主流主板只能加到16G

int和uint 是多少位,取决于运行环境版本位数

64位golang运行环境,1个int是64位,占8字节。 8G内存能存储 大约13亿个int整数

unsafe包Sizeof返回类型v本身数据所占用的字节数。返回值是“顶层”的数据占有的字节数。例如,若v是一个切片,它会返回该切片描述符的大小,而非该切片底层引用的内存的大小。

1个字节型byte占 1字节

1个字符类型rune 4个字节 (等价于int32 )

1个汉字 3个字节

(var str byte = '中') overflows byte 汉字占3个字节

(str := '中' 自动推到类型为int32 4字节)

golang中string底层是通过byte数组实现的。中文字符在unicode下占2个字节,在utf-8编码下占3个字节,而golang默认编码正好是utf-8。所以golang中1个汉字3字节 。

golang中还有一个byte数据类型与rune相似,它们都是用来表示字符类型的变量类型。它们的不同在于:

byte 等同于int8,常用来处理ascii字符

rune 等同于int32,常用来处理unicode或utf-8字符

"hello 你好"

fmt.Println("len(str):", len(str))

运行结果:12 (1个汉字3个byte字节)

//golang中的unicode/utf8包提供了用utf-8获取长度的方法

//函数类似RuneCount但输入参数是一个字符串。

fmt.Println("RuneCountInString:", utf8.RuneCountInString(str))

运行结果:8 (一个rune等于int32 4字节,能存储1个汉字)

//通过rune类型处理unicode字符

fmt.Println("rune:", len([]rune(str)))

运行结果:8 (一个rune等于int32 4字节,能存储1个汉字)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++标准模板库编程实战

C++标准模板库编程实战

Ivor Horton / 郭小虎、程聪 / 2017-1

《C++标准模板库编程实战》介绍最新的C++14标准的API、库和扩展,以及如何将它们运用到C++14程序中。在书中,作者Ivor Horton 则阐述了什么是STL,以及如何将它们应用到程序中。我们将学习如何使用容器、迭代器,以及如何定义、创建和应用算法。此外,还将学习函数对象和适配器,以及它们的用法。 阅读完本书之后,你将能够了解如何扩展STL,如何定义自定义类型的C++组件,你还将能够......一起来看看 《C++标准模板库编程实战》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器