本文主要是介绍16进制内存地址——计算机内存地址为什么用16进制?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在计算机底层,内存地址通常以十六进制表示。使用十六进制可以更好地理解和识别内存地址、指针和寄存器等底层系统信息。
谈到内存地址,不可避免引出指针的概念。
变量和数据在内存中是如何存放的呢?我们知道,所谓程序是由计算机(更准确点说是操作系统)加载其进内存后执行的,计算机会为程序分配一个内存空间用来存放程序编译后的代码指令以及程序中用到的数据。对于程序,计算机会在内存中分配一个内存空间用来存放整数(一般是4字节长度),并给这个空间起个名字叫“ivar”。当我们给`ivar`赋值的时候,所赋的值就存入到这个内存空间中。这就是变量和变量的数据在内存中实际存放的形态。
内存编号我们也称之为内存地址,通常使用一个16进制的整数来表示。比如上面例子中的内存地址就是16进制整数61fe14
既然内存地址也是个整数,那么如果有个小盒子(变量)存放这个内存地址,那我们就可以随时通过这个小盒子里的地址找到相应的内存块,取得里面的数据或是改变里面的数据了。这个用来存放内存地址的变量我们称之为指针。
计算机只能理解0和1,所以计算机用二进制,而人类有十个手指,所以人类用十进制,那么,为什么计算机内存地址采用却是十六进制呢..............
计算机内存之所以用十六进制,是因为16是2的4次方,二进制到十六进制之间比较容易转换,电路比较简单,焊起来容易,如果内存用十进制的话,不仅效率不会提升,还会徒增复杂度和成本。
二进制,01
八进制,01234567
十进制,0123456789
十六进制,0123456789ABCDEF (前缀为:0x)
计算机内存地址为什么用16进制?
为什么用16进制
1、计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示)
2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便
3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好
4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算
16进制用在哪里
1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。
2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式
3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。
不同进制之间的转换
(1)十进制转化为r进制,整数部分用除r取余法,小数部分用乘r取整法。
这篇关于16进制内存地址——计算机内存地址为什么用16进制?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!