程序是怎样跑起来的要点整理2(第二章 数据是用二进制表示的)

计算机所处理的信息的基本单位是字节(8bit)。字节是最基本的信息计量单位。位是最小单位,字节是基本单位。内存和磁盘都使用字节来存取与读写数据,使用位单位是无法访问的,因此字节是基本单位。

程序在运行是计算机内部是用二进制数来表示的。
计算机不区分二进制数,怎么解读由程序员说了算。比如“00100111”的二进制数,可以解读为纯粹的数值,也可以解读为单引号,也可以解读为方框图标等等。

位权的概念:
比如:39中 :3表示310 9表示91;
这里的10 和 1就是位权。这个数的第一位(从右边开始数)的位权是:(在10进制中)10^0, 第二位10 ^1 ;以此类推……
在二进制中就是:第一位:2^0 第二位:2^1;以此类推……


运算:四则运算
特有的运算:移位运算

移位运算是不适用于十进制呢?计算机内部都是把N进制转换成2进制进行运算的。

计算机中表示负数的方法:
计算机中的补数;
小问题:-1用二进制数怎么表示?将二进制数的正数取反加1
00000001 按位取反11111110–> +1—> 11111111就表示-1;
计算机内部在做减法运算时实际上是在做加法运算。

取反加1:
我们可以把-2表示成二进制数:
2 00000010–11111101(取反) – 11111110(加1)
那么我们知道一个二进制数11111110,怎么知道它是负几呢?
还是取反加1添符号
11111110—00000001(取反)-- 00000010(加1) 就是2 添符号就是-2.

计算机编程语言的数据类型分析:
unsigned short 与short的区别:
前者表示的是0-65535,是不可以处理负数的,unsigned short中把最高位的1看做是32768以上的值。
后者表示的是-32768~ +32767,可以处理负数,short中将最高位的1看做补数来处理。


逻辑右移和算数右移的区别:
当二进制数表示图形模式或者非数值时,右移后最高位补0,这就是逻辑右移。
在这里插入图片描述
当二进制数当做有符号的数进行运算时,移位后要在最高位填充移位前符号位的值(0或1),这就称为算数右移。
在这里插入图片描述
ps:只有在右移是才区分最高位补0还是1的问题。也就是区分是算术右移还是逻辑右移。左移时,无论是逻辑左移还是算术左移都统统补0.


符号扩充问题:
以8位二进制数为例,保持值不变的情况下,将其扩充为16位,32位数。
例:0111 1111— 0000 0000 0111 1111
1111 1111 — 1111 1111 1111 1111.
在这里插入图片描述

结论&方法:不管是正数还是用补数表示的负数,都只需要用符号位的值(0或1)填充高位即可。

逻辑运算的窍门
思考逻辑与算术的区别在哪里?什么是逻辑运算?什么是算术运算?
逻辑就是0和1 算术就是四则运算。
逻辑运算包括:
逻辑非(NOT运算) 0变1 1变0
逻辑或(AND运算) 有1就变1
逻辑与 (OR运算) 两个都为1才变1
逻辑异或(XOR运算)两个不同才为1,(异:两个不同)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值