关于16进制与内存地址的几个疑惑
今天看b站的《深入理解计算机系统》-------“信息的存储”部分,讲述了16进制以及内存地址相关内容。我看后有两个疑惑。1、之所以引入16进制,视频中给出了原因“二进制表示法比较冗长,而十进制表示法与位模式表示法之间的转换又比较麻烦”-------------关于这一点我的疑惑是,所谓的位模式表示法。就是二进制表示法吧?如果是,我发现二进制和十六进制之间的转换也不简单。而且无论是二进制转十六进制,还是二进制转10进制。目前随便找个互联网网站都可以给你转换。因此所谓“转换又比较麻烦”看起来像个伪命题。因为二进制和十进制之间转换比较麻烦而引入十六进制似乎是为了解决一个问题而制造了新问题。
如果我理解的不对,是否可以举个例子,可以体现引入十六进制带来的便捷?视频中还介绍了c语言中的十六进制编码。可是我过去简单学过c语言。似乎系代码的时候也用不上十六进制。大佬们可否给个例子
2、视频介绍内存中每个自己都有一个十六进制的地址。还讲了32位操作系统与64位操作系统 管理内存大小的差别。--------------我的问题是内存地址像是门牌号。但是这个门牌号是存放在哪里呢?这个门牌号本身是否占用内存空间呢?一个字节是32比特,那么这个字节对应的地址占用多少存储空间? 操作系统如何进行内存地址(16进制编码)和内存半导体硬件存储空间(内存物理地址)的一一对应呢?只有建立了这种对应关系,才能在需要的时候根据“内存地址(16进制编码)”找到对应的物理地址存放或读取数据吧。