用户名

用户名 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 该用户太懒什么也没留下

个人动态

用户名 接受了回答 · 2014-11-25

从 CPU 开始运算到计算机显示,发生了什么?

为什么这么多人踩这个问题呢?没有不好的问题,只有不好的答案。踩这个问题的,我只能姑且认为你没有好的答案。


CPU 只能进行数值运算,

错。

CPU(中央处理器)主要由控制器运算器

运算器包括算术逻辑单元(ALU)、累加器、寄存器、路径转换器等。

至于你提到的数值运算,只是其中的一小部分,而且是很重要的部分。

因为计算机最初的数值运算只能进行位运算:即与、或、非。而运算的结果放在寄存器。

比如加法运算,在电路上是这样的:

  1. A B 存放相加的两个数字。
  2. 相加的结果:

    1. 低位是 A 或 B
    2. 进位是 A 与 B

A B 为 0 或者 1。对应的是电压的高低。

后来,由于这部分功能是经常用到的,于是就把这些东西也集成为了专有芯片:加法运算器。

在 PC 上,就直接集成到了 CPU 里面了。

CPU 的每次运算包括:提取、解码、执行和写回。

这里面涉及到的寻址,指令……我就不解释了,你看看相关的书籍。而执行阶段,不仅仅是算数运算,逻辑运算,还包括其它的。

那么计算机是怎么显示出字符的,怎么进行编译的,原理是怎样的?

在电子计算机发明以前,机器就已经可以显示字符了。可以百科一下约翰内斯·古登堡

如果你知道早期计算机的历史,你也就知道为什么很多语言的输出不是用 output 函数,而是用 print 函数了。因为早期计算机只能打印机,没有显示器。

前面已经讨论了数值计算。现在插播广告,如果想了解更多可以去我博客看看:代码之谜系列

计算机的组成,除了 CPU 还有几个主要部件:存储器、输入/输出。

现在我们构建一个最简单的显示器。

这个显示器是黑白的,显示器的分辨率是8*8(确实很简陋)。在显示器上,布满了64个小灯。(插播因特尔广告:灯,灯灯灯灯)

这些灯,灯灯灯灯,有一个特点,就是电压低了,则暗或者灭,电压高了,则显示。

灯的正极都连接到了一个电源上,而负极,都连接着一根线,一共64根线。

效果图(来自百度百科,密集恐惧症者勿看)

引脚

如果让灯都灭掉,则引脚上的电压都是低压,于是我们都给他们发送 0

00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

这个本来应该是正方形的,凑合看吧。

这个显示器也是一个芯片。

如果我们想显示数字 1,则我们发送

00011100
00011100
00011100
00011100
00011100
00011100
00011100
00011100

有点糙,凑合看吧。

对应的十六进制是 1C,十进制 28

因此,我们想显示1,则只需要把长整形的无符号数28,发送到显示器芯片的地址。

现在问题来了,我想显示1,却发送的是28。如果显示器的分辨率更大,我们需要发送另一个数字。也就是说,对于不同型号,不同分辨率的显示器,我们的操作确实不一样的。这样显然是违反三个代表的主体思想的,也不利于构建和谐社会。

于是,标准开始制定,ANSII,UNICODE……

只要,1 的内部代码就确定了,十六进制的 31,十进制的 49。

而上面提到的 28 对应的是 1,则为字形表。

当我们想显示 1 的时候,只需要把 1 的 ascii 码发送给显示器(我这么写是为了简化流程,其实是发送给了负责处理显示功能的API),就可以了。

如果想了解更多的显示细节,这已经不是CPU的工作了,而是 GPU。

我的github地址:https://github.com/justjavac

用户名 赞了回答 · 2014-11-25

解决从 CPU 开始运算到计算机显示,发生了什么?

为什么这么多人踩这个问题呢?没有不好的问题,只有不好的答案。踩这个问题的,我只能姑且认为你没有好的答案。


CPU 只能进行数值运算,

错。

CPU(中央处理器)主要由控制器运算器

运算器包括算术逻辑单元(ALU)、累加器、寄存器、路径转换器等。

至于你提到的数值运算,只是其中的一小部分,而且是很重要的部分。

因为计算机最初的数值运算只能进行位运算:即与、或、非。而运算的结果放在寄存器。

比如加法运算,在电路上是这样的:

  1. A B 存放相加的两个数字。
  2. 相加的结果:

    1. 低位是 A 或 B
    2. 进位是 A 与 B

A B 为 0 或者 1。对应的是电压的高低。

后来,由于这部分功能是经常用到的,于是就把这些东西也集成为了专有芯片:加法运算器。

在 PC 上,就直接集成到了 CPU 里面了。

CPU 的每次运算包括:提取、解码、执行和写回。

这里面涉及到的寻址,指令……我就不解释了,你看看相关的书籍。而执行阶段,不仅仅是算数运算,逻辑运算,还包括其它的。

那么计算机是怎么显示出字符的,怎么进行编译的,原理是怎样的?

在电子计算机发明以前,机器就已经可以显示字符了。可以百科一下约翰内斯·古登堡

如果你知道早期计算机的历史,你也就知道为什么很多语言的输出不是用 output 函数,而是用 print 函数了。因为早期计算机只能打印机,没有显示器。

前面已经讨论了数值计算。现在插播广告,如果想了解更多可以去我博客看看:代码之谜系列

计算机的组成,除了 CPU 还有几个主要部件:存储器、输入/输出。

现在我们构建一个最简单的显示器。

这个显示器是黑白的,显示器的分辨率是8*8(确实很简陋)。在显示器上,布满了64个小灯。(插播因特尔广告:灯,灯灯灯灯)

这些灯,灯灯灯灯,有一个特点,就是电压低了,则暗或者灭,电压高了,则显示。

灯的正极都连接到了一个电源上,而负极,都连接着一根线,一共64根线。

效果图(来自百度百科,密集恐惧症者勿看)

引脚

如果让灯都灭掉,则引脚上的电压都是低压,于是我们都给他们发送 0

00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

这个本来应该是正方形的,凑合看吧。

这个显示器也是一个芯片。

如果我们想显示数字 1,则我们发送

00011100
00011100
00011100
00011100
00011100
00011100
00011100
00011100

有点糙,凑合看吧。

对应的十六进制是 1C,十进制 28

因此,我们想显示1,则只需要把长整形的无符号数28,发送到显示器芯片的地址。

现在问题来了,我想显示1,却发送的是28。如果显示器的分辨率更大,我们需要发送另一个数字。也就是说,对于不同型号,不同分辨率的显示器,我们的操作确实不一样的。这样显然是违反三个代表的主体思想的,也不利于构建和谐社会。

于是,标准开始制定,ANSII,UNICODE……

只要,1 的内部代码就确定了,十六进制的 31,十进制的 49。

而上面提到的 28 对应的是 1,则为字形表。

当我们想显示 1 的时候,只需要把 1 的 ascii 码发送给显示器(我这么写是为了简化流程,其实是发送给了负责处理显示功能的API),就可以了。

如果想了解更多的显示细节,这已经不是CPU的工作了,而是 GPU。

我的github地址:https://github.com/justjavac

关注 16 回答 4

用户名 评论了回答 · 2014-11-25

从 CPU 开始运算到计算机显示,发生了什么?

用户名 提出了问题 · 2014-11-18

解决从 CPU 开始运算到计算机显示,发生了什么?

CPU 只能进行数值运算,那么计算机是怎么显示出字符的,怎么进行编译的,原理是怎样的?

小白求指点!

关注 16 回答 4

用户名 评论了问题 · 2014-10-13

斐波那契查找数列的排列和长度问题

用户名 接受了回答 · 2014-10-13

使用主分区和逻辑分区的意义在哪里?

以下回答针对Windows(*unix属于另一种思想,不做讨论):

1.

  • 主分区是权限最高的分区,可以用作系统启动引导程序。当然,这个引导程序可以引导自己分区的系统启动,也可以引导其他分区的系统启动,甚至是逻辑分区。
  • 跟主分区同级的是扩展分区,扩展分区被设计成用来存储数据,不具备系统分区的许多功能(引导、启动、故障转储...)。
  • win7之前(不讨论vista)的Windows系统支持的MBR分区表只支持三个主分区和一个扩展分区,卷最大为2TB,win7以及至今的系统支持GPT分区表,支持最大18EB的卷和128个分区。
  • 扩展分区本质上只是一个容器,里面可以容纳无限数量的逻辑分区。换句话说,我们看到C D E F之类的硬盘分区只可能是两种,主分区或者逻辑分区。

2.

  • 保留多个分区是Windows古老的习惯,已经不再适用于当今云服务横行时代的个人计算机。之前人们大多是为了在重装系统的时候不丢失数据,现在我们创造的最宝贵的照片、视频、文档,都已经被各种各样的服务商存上云端,可以说PC里已经没有太多需要“永久保留”的东西了,况且一块硬盘的寿命有多长还真不好说,特别是在当今磁盘容量爆炸的时代。
  • 当下许多个人组装的台式机都是SSD+HDD双硬盘配置,甚至稍好一点的笔记本电脑(5000+)都已经几乎标配SSD了,另一块硬盘几乎不会受到威胁。个人建议只分一个主分区,这样在磁盘内部倒腾大量文件的时候,你就会感受到大分区的魅力!

用户名 赞了回答 · 2014-10-13

解决使用主分区和逻辑分区的意义在哪里?

即将睡觉了,来不及回答,埋个坑先。以后有时间填坑。

很多年以前,主分区至多4个,但是逻辑分区理论上可以有无限个,但是win貌似至多可以识别c~z这些;剩下的先都这篇文章:http://blog.sina.com.cn/s/blog_3e3fcadd0100n8r3.html

关注 0 回答 2

用户名 赞了回答 · 2014-10-13

解决使用主分区和逻辑分区的意义在哪里?

以下回答针对Windows(*unix属于另一种思想,不做讨论):

1.

  • 主分区是权限最高的分区,可以用作系统启动引导程序。当然,这个引导程序可以引导自己分区的系统启动,也可以引导其他分区的系统启动,甚至是逻辑分区。
  • 跟主分区同级的是扩展分区,扩展分区被设计成用来存储数据,不具备系统分区的许多功能(引导、启动、故障转储...)。
  • win7之前(不讨论vista)的Windows系统支持的MBR分区表只支持三个主分区和一个扩展分区,卷最大为2TB,win7以及至今的系统支持GPT分区表,支持最大18EB的卷和128个分区。
  • 扩展分区本质上只是一个容器,里面可以容纳无限数量的逻辑分区。换句话说,我们看到C D E F之类的硬盘分区只可能是两种,主分区或者逻辑分区。

2.

  • 保留多个分区是Windows古老的习惯,已经不再适用于当今云服务横行时代的个人计算机。之前人们大多是为了在重装系统的时候不丢失数据,现在我们创造的最宝贵的照片、视频、文档,都已经被各种各样的服务商存上云端,可以说PC里已经没有太多需要“永久保留”的东西了,况且一块硬盘的寿命有多长还真不好说,特别是在当今磁盘容量爆炸的时代。
  • 当下许多个人组装的台式机都是SSD+HDD双硬盘配置,甚至稍好一点的笔记本电脑(5000+)都已经几乎标配SSD了,另一块硬盘几乎不会受到威胁。个人建议只分一个主分区,这样在磁盘内部倒腾大量文件的时候,你就会感受到大分区的魅力!

关注 0 回答 2

用户名 提出了问题 · 2014-09-28

解决使用主分区和逻辑分区的意义在哪里?

  1. 主分区和逻辑分区的区别是什么,把他们区分的意义在哪里?
  2. 现在还有必要保留这个区分吗?

关注 0 回答 2

用户名 赞了评论 · 2014-09-28

有哪些好玩的的自杀式命令?

认证与成就

  • 获得 11 次点赞
  • 获得 11 枚徽章 获得 1 枚金徽章, 获得 4 枚银徽章, 获得 6 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2014-09-16
个人主页被 2.3k 人浏览