-
2017-11-17 10:10:15
问题来源:指针数组是一个数组,他每个元素中都是一个地址,那么指针数组一个元素有多大?
这取决于你的计算机的地址线的位数,他直接决定了可寻址的多少。
比如32根地址线(32个二进制位表示一个地址),总共有2的32次方种组合方式,也就是能对应2的32次方个地址,每个地址可以存放一个字节的数据(8bit),也就是说可寻址的大小基本上就是RAM的大小,这里32根对应的内存是4GB。
参考文章:
http://blog.csdn.net/YuZhiHui_No1/article/details/38458681
所以32根地址线就对应4个字节,8个十六进制数,也就是指针数组一个元素的大小。
更多相关内容 -
内存地址与内存空间
2021-10-04 19:21:35首先知道几个概念 内存地址只是一个编号,代表一个内存空间;(内存地址是16进制保存的,一个内存(内存空间)是一是个...16位操作系统的内存地址占用大小是16位,即2字节 32位操作系统的内存地址占用大小是3...首先知道几个概念
-
内存地址只是一个编号,代表一个内存空间;( 内存地址是16进制保存的,一个内存(内存空间)是一个字节(8bit))
-
内存地址所执行的内存单元大小就是1字节,跟内存地址位数无关;
定义一个int类型的变量,找到一个空间伪4个字节的空间
变量a占用4个字节的空间,但是内存地址是第一个字节的地址,也就是说上面的变量a的内存地址是238.
内存地址的占用大小
16位操作系统的内存地址占用大小是16位,即2字节
32位操作系统的内存地址占用大小是32位,即4字节
64位操作系统的内存地址占用大小是64位,即8字节
128位操作系统的内存地址占用大小是128位,即16字节
-
-
内存地址(理解)
2020-04-30 23:31:58内存地址 内存大小 32/64位操作系统 大端小端
内存地址
一个内存地址=一个内存单元=一个字节
(一个地址表示的是一个8bit空间)
(不论这个地址有多少位,表示地址的位数和CPU的位有关:
CPU只能寻址16位(16根地址线),所以用4位十六进制表示地址,CPU只能寻址32位(32根地址线),所以用8位十六进制。一位十六进制表示四位二进制。)
内存大小
32/64位操作系统就是和CPU的位数有关,CPU的位数是指CPU一次性可以处理数据或指令的能力。例如8位的CPU,一次只能处理一个8位的数据或者一个8位的指令。
位的单位是bit,字节的单位是byte。1byte=8bit,1字节=8位。
字节一般用B,位一般用b1GB简称1G, 指存储数据的容量大小
1G=1048576KB ,1G=1024MB,1MB=1024KB,1KB=1024B字节
1TB=2*2*2*2*2*2*2*2*2*2=1024GB
1G=2*2*2*2*2*2*2*2*2*2=1024MB
1MB=2*2*2*2*2*2*2*2*2*2=1024KB
1KB=2*2*2*2*2*2*2*2*2*2=1024B地址总线的位宽决定了CPU的寻址能力有关。位宽就是位数、宽度。
因为计算机内部是以二进制表示的,所以,
32位(bit)处理器(cpu)的寻址能力最大为:
(以字节为单位,找到一位也就找到了一字节,因为字节是最小单元)
实际上就是2的32次方个8bit(1Byte),等于232Byte,
232(Byte)=210 * 210 * 210 * 22(Byte)=4GB所以常说32位操作系统最多支持4GB内存,64位操作系统同理。
为了更好地描述存储单位,使人们能够更容易理解计算机的空间,计算机行业又制定了比比特更大的单位,这个单位就是字节,英文描述为 byte ,简写为字母 B ,它是常用的基本单位。随着计算机数据的不断扩大,KB 又出现了,它和 byte 的换算关系就是 1 个 KB 等于 1024B ,然后又是 MB , 1MB 等于 1024KB ,接下来的就是非常常见的 GB , 1GB 等于 1024MB ,再往上就是 TB , 1TB 等于 1024GB ,各个单位都是 1024 的数量级关系。
在生活中,一张图片的大小差不多就是几个 MB 左右,而一部电影则差不多在 2GB 左右。
注意区分:
1MB/s(兆字节/秒)=8Mbps(兆位/秒)
1MB/s=8Mbps
个人理解:。。。 。。。
大端小端
32bit的16进制数 0x12345678 在内存中的存放方式:
大端: 高字节存储在低地址,低字节存储在高地址内存地址 0x1000 0x1001 0x1002 0x1003 存放内容 0x12 0x34 0x56 0x78 小端: 低字节存储在低地址,高字节存储在高地址
内存地址 0x1000 0x1001 0x1002 0x1003 存放内容 0x78 0x56 0x34 0x12 堆向高地址扩展,栈向低地址扩展。
windows上内存是中间向两头增长,linux上的内存是两头向中间增长。理解小端(程序)https://blog.csdn.net/ssc_zcys/article/details/105875616
-
32位处理器和32位地址线区别以及为什么32位地址线内存大小为4G的解释
2020-07-24 15:08:30在网上看到很多朋友分不清32位处理器和32位地址线的问题,还有就是提出32位地址线为什么是4G大小的内存? 首先这是一个很好的问题,但是网上却有很多不好的答案。因为回答的人本身也没有搞清楚,把32位处理器和32位...在网上看到很多朋友分不清32位处理器和32位地址线的问题,还有就是提出32位地址线为什么是4G大小的内存?
首先这是一个很好的问题,但是网上却有很多不好的答案。因为回答的人本身也没有搞清楚,把32位处理器和32位地址线当做一回事给别人解释,误导他人。
32位处理器:
32位处理器表示我们的处理器一次可以处理的数据量,也就是32位大小,即4个字节。
那么我们现在常见的还有64位处理器,它代表处理器一次可以处理8个字节的大小。
处理器的位数代表了处理器处理数据的能力。
32位地址线:
32位地址线又是什么意思呢?在计算机中,当处理器需要在内存中存取数据的时候,就必然会面临一个问题就是寻址,寻址的前提就是建立地址。
在计算机的物理结构中,一根地址线可以有0和1两个信号,那么通过这0和1的两个电信号,32根地址线一共组合起来就可以形成2^32个电信号的组合,通过它们我们就可以建立起2^32个地址,用于处理器识别和访问。在这里,特别强调一个东西就是,在内存中,数据存储的最小单位是1个字节。为什么要强调这个,是因为它决定了我们的总的内存大小。由于在内存中,数据存储的最小单位是1个字节,而我们现在有2^32个地址,即我们需要2^32个字节大小的存储空间,即4G大小,这也就是为什么32位地址线的内存大小为4G的原因了。
-
内存地址的概念和理解
2019-05-29 09:07:241.内存地址用4位16进制和8位16进制表示的区别。例如经常可以看到某些书籍上写的内存地址0x0001,在另外一些书籍上写的内存地址又变成了0x00000001。都是表示的编号为1的内存地址,为什么一个是4位16进制表示,另外一... -
彻底搞懂虚拟内存,虚拟地址,虚拟地址空间
2021-04-27 18:20:55可执行文件由操作系统加载到内存中,交由CPU去执行,现在问题来了,CPU怎么去访问代码和数据?,访问的方式经历过四个阶段: 1.直接访问 2.段基址+段偏移地址 3.段选择子+段偏移地址 4.虚拟地址 现代操作系统采用... -
要访问1KB的内存为啥需要10位地址线,而不是13位?
2017-11-26 14:19:17博主最近正在学习微机原理与接口技术、计算机组成原理等专业课程,产生了一个疑问:假设地址总线为10位,为什么就可以访问1KB的内存?难道不该是13位,才能访问1KB的内存吗?认真思考过的小伙伴,应该都会有这个疑问... -
计算机内存地址和为什么用16进制?
2021-07-11 03:46:49十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示)2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能... -
C语言的内存与地址及相关一些基本概念
2020-10-29 23:05:29指针的本质 C语言中所有的变量都有类型 int类型就保存整数 doublue类型就保存的双精度的浮点数 指针保存的是内存地址 数组声明的内存排序 C语言声明数组要声明数组的长度 在函数里声明在栈内存里,函数执行的时候... -
32根地址线内存多少
2021-07-24 01:16:31选择内存大小时,我们需要知道地址线总数和内存的关系,每一根地址线都会代表一个bit位,才能满足地址线的正常工作需要。32根地址线内存多少32根地址线需要4G的内存,这里可以根据计算公式来得到结果,比如32根地址... -
关于内存和内存地址的详解
2018-10-24 22:48:46内存地址用4位16进制和8位16进制表示的区别。例如经常可以看到某些书籍上写的内存地址0x0001,在另外一些书籍上写的内存地址又变成了0x00000001。都是表示的编号为1的内存地址,为什么一个是4位16进制表示,另外一个... -
内存地址空间布局
2014-12-04 11:58:18在32位模式下虚拟地址空间总是一个4GB的内存地址块。这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用。每一个进程拥有一套属于它自己的页表,但是还有一个隐情。只要虚拟地址... -
C++内存地址分配和内存区划分简介
2018-02-07 11:58:49C++内存地址分配和内存区划分简介 原文地址:http://blog.csdn.net/liuhuiyi/article/details/7530137 内存类型简介 内核:在一些系统中,当系统调用发生时,操作系统或者操作系统内核会编程应用程序内存的一... -
关于内存地址和内存空间的理解
2018-06-04 02:16:041.内存地址用4位16进制和8位16进制表示的区别。例如经常可以看到某些书籍上写的内存地址0x0001,在另外一些书籍上写的内存地址又变成了0x00000001。都是表示的编号为1的内存地址,为什么一个是4位16进制表示,另外一... -
对大小端模式,内存地址高低位,寄存器高低位
2014-10-23 21:55:43大端模式(Big-endian),是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而... -
pcie内存地址空间/配置地址空间/io地址空间分析
2020-07-02 08:49:17PCIe的内存地址空间、I/O地址空间和配置地址空间 pci设备与其它接口的设备(如i2c设备)最大的不同是存在内存地址空间和配置地址空间,本文分析一下它们的用途。 首先区分一下IO空间和内存空间 cpu会访问的设备一般... -
内存地址存储,内存空间
2018-05-13 11:56:371.内存地址用4位16进制和8位16进制表示的区别。例如经常可以看到某些书籍上写的内存地址0x0001,在另外一些书籍上写的内存地址又变成了0x00000001。都是表示的编号为1的内存地址,为什么一个是4位16进制表示,另外一... -
PCIe的内存地址空间、I/O地址空间和配置地址空间
2018-08-12 18:07:14PCIe的内存地址空间、I/O地址空间和配置地址空间 pci设备与其它接口的设备(如i2c设备)最大的不同是存在内存地址空间和配置地址空间,本文分析一下它们的用途。 首先区分一下IO空间和内存空间 cpu会访问的设备... -
内存寻址:逻辑地址到物理地址的转化
2019-06-14 13:38:00内存寻址:逻辑地址到物理地址的转化 在计算机里,内存地址分为虚拟内存地址和物理内存地址。... 以X86的32位系统位例,在32系统中,系统的虚拟内存地址范围为4GB。低2GB给应用程序(Ri... -
gdb 如何调试内存地址
2017-07-20 09:18:40样例代码 int age= 20; int *p_age = &age; NSLog(@"p_age = %p", ... //输出指针变量p_age指向值20所在内存的地址 NSLog(@"&p_age = %p", &p_age); //输出指针变量p_age本身的地址 2017-07-19 15:54:07.048 Test07 -
内存地址、存储单元、指针等计算机基础概念
2019-09-25 20:27:28前言 从大一一直困惑到研三的这几个概念今天静下心来总算是搞明白了,太开心太开心...答案当然是“地址”(address)了,你有居住地址,数据也有自己的地址,这个地址就是“内存地址”,如下一段程序: #include<s... -
内存地址的计算方法
2017-10-25 16:00:00内存是按字节编址的,所以单位是字节哈,1字节可是等于8位的。因为计算的范围一般比较小,所以就记住两个就够了。记住几个常用的2的10次方为1024即1KB 2的20次方=(2的10次方)的平方,即1MB就行了 如果要求更大的,... -
在keil中看内存地址
2018-06-16 20:52:40从上图可以看出当执行mov r3 #0x0010时,因为指令需要先加载进内存中,内存中发生如下变化1.当板子上电之后,第一步加载进内存的是中断向量表,但不是说0x000000000这块内存空间不可以使用了2.指令在内存中也是以... -
Linux 64位进程地址空间分布概况
2020-11-05 18:38:16对于Linux 64位系统,理论上,64bit内存地址可用空间为0x0000000000000000 ~ 0xFFFFFFFFFFFFFFFF(16位十六进制数),这是个相当庞大的空间,Linux实际上只用了其中一小部分(256T)。 Linux64位操作系统仅使用低47... -
内存容量、起始地址或结束地址的计算方法
2021-09-14 16:26:12内存容量、起始地址或结束地址的计算方法 -
单片机8位、16位、32位和64位系统在内存上的区别
2021-04-17 15:41:21总线、内存和变量的相关知识 前言 本篇文章主要介绍单片机内部的总线和内存的一些关系及知识点, 一、32位系统和64位系统的区别 ...需注意的是8位单片机不带表其地址总线是8位。8位的51单片机,其数据总线是8 -
X64位内存注入DLL技术(可躲避检测DLL,破解盗用DLL)
2021-03-02 16:10:37在这几天新年里,除了忙着像大多数人一样走亲访友拜年,剩余的时间也没闲着,研究开发了另外一种对64位程序进程进行注入dll的功能,今天给大家带来的是最近开发的新功能里面其中一个64位内存注入dll,也是属于64位... -
内存大小与地址的对应关系以及计算方法
2020-09-07 17:40:42在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,内存中的每一个字节对应唯一的一个地址,每一个地址代表一个字节