关闭

Poedu_计算机基础_lesson02_20160826_二进制

标签: 二进制
288人阅读 评论(0) 收藏 举报
分类:

======================仰望星空 脚踏实地==========================
======================      lesson02         ==========================

1.复习

   1)CPU的组成

   2)二进制的基础演算

2.二进制的运算

  1)加法:较为简单==>逢二进一

  2)减法:变为加上一个负数(计算机做不了减法)

            =>问题:那么计算机应该如何表示负数

              =>解决办法:规定一个固定的长度表示数值,拿最前面的一个引脚(位)表示符号(0正1负)

                =>出现问题:3+(-1)=0011+1001=1100=-4    (显然不对)

                   =>解决办法:补数

                    =>即:当为负数时,确定数值长度,取反(除符号位外,1变0,0变1)加1,再与另一数进行加法运算可得正确值。为什么可行?

                     =>计算机不会借位,溢出的会抛掉,例如3+(-1)      (-1)的二进制表示为1001,取反得1110,加1得1111(补数)

                       =>所以3+(-1)=0011+1111=0010=(-2)   (若你得到的值是10010,请记得,将超出长度那位的值抛掉)

                  =>关于补码(数):补码中的1000不代表-0,所代表的是当前能够代表的最小负数; 0没有补码。

                   =>在8位中,11111111 是最大的负数(-1)  10000000是最小的负数(-128)

 3)乘法:通过左移实现:左边超出长度的数值抛掉,右边缺少数值的位用0补充

               =>例:3>>2(左移2位)   0011>>2=1100=12=3*2^2

                 =>即:左移几位等于乘于几个2

 4)除法:通过右移实现  即除于2^n

               =>但是当数值为负数时,例如:1100右移2位  会变成0011  显然不对(负数变正数了)

                =>对于除法有两种情况:算术右移和逻辑右移

                 =>算术右移:根据首位(符号位)补1或0  即:1100>>2=1111  即从(-4)变为(-1) 符合规则

                 =>逻辑右移:不管符号位,直接往右移n位,空位补0   如:1100>>2=0011 运用:LED屏流动文字/图像的实现

 5)逻辑运算 ==>通过电路门实现

       5.1 逻辑非:(not)   即1变0,0变1

       5.2 逻辑与:(and) 两者都为1时为1  0&&0=0 、0&&1=0、1&&1=1

       5.3 逻辑或:(or) 二者之间至少有一个为1,值就为1  0||0=0、0||1=1、1||1=1

       5.4 逻辑异或:(xor) 两者数值不同时为真   00=0、11=0 、10=1

 6)二进制表示浮点数(了解)

      例(部分代码):

             for(int i=0;i<100;i++)

            {

                 sum+=0.1;

             }

        程序运行结果为sum=10.00002 ==>计算机计算浮点数很难达到准确,有部分准确(小数部分能被2^(-1)或2^(-2)......整除时)

  对于此问题的处理方式:

       =>安全的运算:不拿小数运算,如上例中,sum+=0.1*10,printf("%f",sum/10);

      =>不管后面的   (不推荐这种方式)

0
0
查看评论

Poedu_计算机基础_复习_20160828

1.程序 ——>exe——>加载——>CPU 2.CPU的组成:寄存器                           =>分类:累加寄存器、...
  • qq_34172153
  • qq_34172153
  • 2016-08-30 19:56
  • 166

Poedu_计算机基础_lesson04_20160830_磁盘

问题:   1.存储程序方式是指的什么   2.如何通过内存来提高磁盘的访问速度   3.Windows为例,他为了节约内存用了哪些手段 1.存储数据的部件:(存储介质)       1)寄存器   :CPU内部 速度最快 ,...
  • qq_34172153
  • qq_34172153
  • 2016-08-31 22:37
  • 127

Poedu_计算机基础_lesson05_20160831_操作系统

操作系统: 1.软件的运行环境指的是什么? 1)操作系统 2)硬件(如CPU的时钟频率等等) 2.Windows的应用程序能够在Linux下运行吗? 不能,API的不同,各个操作系统都有自己独有的API =>需要将代码三次编译 概念补充:本地代码:在文本下写入的一些特定的字符 文本-&...
  • qq_34172153
  • qq_34172153
  • 2016-08-31 22:45
  • 236

Poedu_计算机基础_lesson03_20150827_内存

本课重点:      1)内存的物理结构      2)内存的逻辑结构:数组、栈与队列、链表 1.问题切入:     1)高级变成语言中的数据类型表示的是什么?   ...
  • qq_34172153
  • qq_34172153
  • 2016-08-29 16:07
  • 222

Poedu_计算机基础_20160906_第二次考试

程序是如何运行的 试卷二 1. 计算机能够精确表示所有数值: B A:  对 B:  错 2. 假设内存中地址引脚10个,数据引脚8个,那么当前内存的大小为_1024byte________。 3. 以下说法正确的是:...
  • qq_34172153
  • qq_34172153
  • 2016-09-11 16:35
  • 95

Poedu_计算机基础_lesson06_20160902_函数调用过程

汇编和可执行文件 - 1.编译:得到obj文件 :  源代码----->机器码(约等于汇编)  =>通过编译器实现这个过程   =>编译器:将一行行的c/c++代码翻译成与之一一对应的汇编代码,将复杂逻辑分解成简单逻辑逻辑(c/c++中有...
  • qq_34172153
  • qq_34172153
  • 2016-09-04 14:52
  • 179

Poedu_计算机基础_lesson07_20160903_软件和硬件

软件:由源代码生成的可执行文件 =>软件的重要性:PC如果没有软件就仅仅是一个盒子,这个盒子里面放了一些IC而已 1.非常重要的一幅图: 2.我们没有写一句操作硬件的代码,那么硬件是由谁操作的? =>我们平时只调用API   =>加上windows层之后,硬件...
  • qq_34172153
  • qq_34172153
  • 2016-09-05 19:38
  • 182

计算机基础:硬件编码 (二进制正反补码、大小端编码)

1: 原码,反码, 补码 2: 浮点数的运算原理--IEEE754 3: 大端与小端(C语言中利用union特性可以判定大端还是小端)
  • xlx921027
  • xlx921027
  • 2017-01-04 17:34
  • 486

Poedu_计算机基础_lesson06_20160902_函数调用过程 _作业

代码: #include"stdio.h"   int main() { printf("I love sin!"); return 0; } 注:在printf处下断点,按F5执行,右键点击进入反汇编,按F1...
  • qq_34172153
  • qq_34172153
  • 2016-09-04 16:15
  • 290

Poedu_计算机基础_lesson01_20160825_程序和CPU

======================仰望星空 脚踏实地========================== ======================      lesson 1    &#...
  • qq_34172153
  • qq_34172153
  • 2016-08-29 14:19
  • 277
    个人资料
    • 访问:11784次
    • 积分:716
    • 等级:
    • 排名:千里之外
    • 原创:63篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条