03_内存(计算机科学)

带着问题学习(内存)

  • 高级编程语言中的数据类型表示的是什么?
  • 32位环境中,指针的长度是多少位?

内存的物理结构

image.png

        上图中展示的是一个内存条,它也是一个IC(集成电路)。
        内存一般采用半导体存储单元,包括随机存储器(RAM)、只读存储器(ROM)以及高速缓存器(CACHE)。
参考于百度百科

memory physical structure.png

        上面是一张最简单的内存物理结构图,它有A0A9共100个地址引脚,也就是说能够寻址的范围是从0000000000到1111111111,共1024个地址值;而数据引脚是从D0D7共8个,也就是8bit,即1byte。所以上图展示的内存总大小为10248bit=1KB。所以我们得出内存的容量 = 寻址范围 * 一次性写入的大小。*

内存的逻辑结构

memory logical structure.png

        上图展示的是一个容量为1KB的内存逻辑结构图。从图上我们不难看出,内存中的每一个地址能够存储的数据是8bit,也就是一个byte,并且地址空间都是连续的。

不同数据类型在内存中的存储方式

        我们常用的数据类型,比如char(1byte)和int(4byte),它们在内存中是怎样存储的呢?
        对于char来说很简单,一个地址空间就能够存放下了,如下图所示,我们可以在地址为0001处存放一个char类型数据。但是对于int来说,该怎样存储呢?因为int类型的数据占用4byte,所以一个地址肯定存放不下,这时候,我们就将下面连续的4个地址空间都分配给int类型的数据变量(整个黄色区域都是代表int的作用域)。当然在取int类型的数据时候,也必须取4个地址的数据才正确,否则取出来的数据将是作物的数据。这就是计算机数据结构设计的一种存储方式。


data type.png

常用的几种数据结构的优缺点

  • 数组:它是分配一块连续的空间,每个元素占用的空间大小相同,所以可以通过下标的形式访问,使得访问速度非常快;但是如果想插入一个元素时,就需要移动大量的元素,空出一个元素空间,将要插入的数据填充到这个位置,同样,删除一个元素也是需要移动大量的元素,才能把这个元素删除掉。所以数组的增删速度很慢,但是它的随机访问速度非常快。
  • 栈:数组的变形,主要用于数据记录,起到回溯的作用,它的特点是先进后出(FILO)。
  • 链表:链表中的每一个元素不一定是连续的,如果想要查询某个元素的值,需要从链表头(对于单向链表)挨个的往后一个一个的遍历,直到遍历到这个元素所在位置时为止,但是链表的插入和删除速度是非常快的,因为它不需要移动其它的元素。所以链表的随机访问速度比较慢,但是它的插入和删除速度非常快。

程序是如何运行的 试卷一

  1. CPU中不含有以下选项中的:C
    A:运算器
    B:寄存器
    C:内存
    D:时钟
  2. CPU中负责计时的部件是:B
    A:程序计数器
    B:时钟
    C:控制器
    D:靠人来计时
  3. 对于汇编以下说法正确的是:B
    A:汇编要编译成机器码
    B:汇编是助记符,和机器码一一对应
    C:汇编是给CPU看的
    D:编译器编译出来的是汇编
  4. 以下哪个寄存器名是错的?D
    A:累加寄存器
    B:程序计数器
    C:标志寄存器
    D:控制寄存器
  5. 以下哪个说法是错误的?C(控制器是用来控制基本操作的,比如去哪里读、去哪里写、内存地址是多少等操作)
    A:计算机能够执行分支是因为标志寄存器
    B:计算机能够执行循环是因为程序计数器
    C:控制器控制程序的分支及循环运行
    D:标志寄存器负责保存计算后结果的状态
  6. 请写出二进制,八进制,十进制,十六进制(9之后使用字母顺序)
二进制 八进制 十进制 十六进制
00000000 00 0 0x00
00000001 01 1 0x01
00000010 02 2 0x02
00000011 03 3 0x03
00000100 04 4 0x04
00000101 05 5 0x05
00000110 06 6 0x06
00000111 07 7 0x07
00001000 010 8 0x08
00001001 011 9 0x09
00001010 012 10 0x0A
00001011 013 11 0x0B
00001100 014 12 0x0C
00001101 015 13 0x0D
00001110 016 14 0x0E
00001111 017 15 0x0F
00010000 020 16 0x10
00010001 021 17 0x11
00010010 022 18 0x12
00010011 023 19 0x13
00010100 024 20 0x14
00010101 025 21 0x15
00010110 026 22 0x16
00010111 027 23 0x17
00011000 030 24 0x18
00011001 031 25 0x19
00011010 032 26 0x1A
00011011 033 27 0x1B
00011100 034 28 0x1C
00011101 035 29 0x1D
00011110 036 30 0x1E
00011111 037 31 0x1F
  1. 请使用公式写出二进制数0 1110 0001 1000 0011 1000对应的十进制,需要解题步骤:
    答:首先将上面的二进制转换为十六进制,如下所示:
    0 1110 0001 1000 0011 1000
    0 E 1 8 3 8
    =816^0 + 316^1 + 816^2 + 116^3 + 14*16^4
    =8 + 48 + 2048 + 4096 + 917504
    =923704

  2. 假设一个32位带符号(有负数)的二进制数0111 0010 1110 1111 0011 1111 0000 1100,请写出对应的十进制数。
    答:首先将上面的二进制转换为十六进制,如下所示:
    0111 0010 1110 1111 0011 1111 0000 1100
    7 2 E F 3 F 0 C
    =1216^0 + 0 + 1516^2 + 316^3 + F16^4 + E16^5 + 216^6 + 7*16^7
    =12 + 0 + 3840 + 12288 + 983040 + 14680064 + 33554432 + 1879048192
    =1928281868

  3. 假设一个32位带符号(有负数)的二进制数1111 0010 0010 1111 0011 0110 0000 1100,请写出对应的十进制数。
    答:因为最高位是1,所以是负数,先减1,然后取反,得到二进制,转换成十进制,再加上负号就是计算的结果。
    1111 0010 0010 1111 0011 0110 0000 1100
    减1,如下所示:
    1111 0010 0010 1111 0011 0110 0000 1011
    取反,如下所示:
    -(0000 1101 1101 0000 1100 1001 1111 0100)
    对应的十六进制为:
    -(0 D D 0 C 9 F 4)
    =-(416^0 + 1516^1 + 916^2 + 1216^3 + 0 + 1316^5 + 1316^6)
    =-(4 + 240 + 2304 + 49152 + 0 + 13631488 + 218103808)
    =-231786996

  4. 假设二进制数(16位)0101 1111 0000 1111左移3位,结果是:
    二进制:1111 1000 0111 1000
    十进制:-1928
    十六进制:0xF878

  5. 假设二进制数(16位)0101 1111 0000 0000逻辑右移3位,结果是:
    二进制:0000 1011 1110 0000
    十进制:3040
    十六进制:0xBE0

  6. 假设二进制数(16位)0101 1111 0000 0000算术右移3位,结果是:
    二进制:0000 1011 1110 0000
    十进制:3040
    十六进制:0xBE0

  7. 假设二进制数(16位)1101 1111 0000 0000算术右移3位,结果是:
    二进制:1111 1011 1110 0000
    十进制:-1056
    十六进制:0xFBE0

  8. 请问一下代码输出的结果是 C
    Int main()
    {
    float sum = 0;
    for(int i=0; i<100; i++)
    {
    Sum += 0.1;
    }
    printf(“%f\r\n”, sum);
    }
    A:10.0000000
    B:10.0000002
    C:不知道(因为浮点数计算肯定是存在偏差的,具体偏差多少,可能与CPU的不同而不同,所以结果是不确定的,也就是未定义的操作!即使是double类型变量,也不能够精确的表示所有的小数,只有一些特殊的小数才能精确表示,比如0.5/0.25/0.125等,如果想精确运算,只能用整数来表示。)
    D:1.0000000

  9. 内存为什么有地址,我们是通过什么计算出内存的大小的?
    答:因为内存芯片中有地址引脚,通过引脚找到内存地址,进而找到这个地址里面存储的值,一个内存地址中存储的数据大小和内存读取指针有关,所以:
    内存的大小=寻址范围*一次读写大小。一次读写大写一般是8bit。

  10. 编程时读取和写入内存速度最快的数据结构是:A
    A:数组
    B:栈
    C:队列
    D:链表

  11. 请说明一下上一题中几种数据结构的优势。
    数组:读写速度非常快;
    栈:便于数据记录和回溯;
    队列:便于数据的顺序操作;
    链表:便于元素的插入和删除。

  12. 程序是在内存中执行的:A
    A:对
    B:错

  13. 所有的数据都是一直(包括关机时)存储在:C
    A:内存
    B:CPU
    C:硬盘
    D:我脑子里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 在我们的生活与工作中所使用到的计算机都是基于冯诺依曼结构实现的,冯诺依曼结构又称冯诺依曼模型或普林斯顿结构,它是一...
    SylvanasSun阅读 2,519评论 1 6
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,382评论 25 707
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,169评论 11 349
  • 《语芬~星空物语》 我伸手, 试着把星星一颗一颗摆成你的样子, 我只想固定成一个星座, 却遗忘了斗转星移, 我只是...
    野心要优雅哦阅读 246评论 0 0
  • 无论小学,大学,小米都是一个积极进取、生怕落于人后的姑娘。回回考试,次次比赛,她都不允许自己没有发挥到极致。 然而...
    眯呼郯怔阅读 268评论 0 0