名词解释

硬编码

当从命令行向程序传递参数时,这些参数被称为命令行参数,这些方式对控制特别重要,特别是我们可以从程序外部去控制函数,而不是在程序内部对这些参数进行硬编码

布尔表达式

人们发现可以使用 布尔代数 可以用来描述逻辑电路设计,并且人们使用 布尔表达式 来表示逻辑操作
汇编语言中AND、OR、NOT都是 按位操作的
并且NOT有最高优先级,其次是AND和OR运算。不过可以使用括号来强制指定运算顺序

多路选择器(multiplexer)

![](https://img2018.cnblogs.com/blog/1248430/201910/1248430-20191011225846756-1398339817.png)

一种数字组件,通过选择位S来选择输出是和X相同还是和Y相同,如果S为 **False** ,结果为X,否则为Y

数字数据表示术语

要用**精确的术语**来描述内存中及显示屏上的数字和字符。这是非常重要的
比如在内存中用**单字节**保存十进制数65,形式为0100 0001.

调试程序可能会将该字节显示为41,即65的十六进制形式
而如果将这个字节复制到显存中,显示屏上可能会显示字母A,因为在ASCII码中,0100 0001代表字母A

由于数字的解释依赖于它的上下文,因此,需要为每个 ** 数据表示类型** 分配一个 特定的名称 ,以便于将来的讨论更清晰

二进制数 是指以其原始格式保存在内存中的整数,二进制整数保存形式为8的倍数
数字字符串 是指一串ASCII字符 例如“123”、“56”。这是一种简单的数字表示法

字符在计算机中的表示

计算机使用的是字符集,经字符映射位整数
ASCII为每一个字符分配了独一无二的7位整数,由于最高位没有使用,因此最高为经常被用来创建其专有字符。比如,IBM 兼容微机就用数值 128〜255 来表示图形符号和希腊字符。

ANCI字符集

定义了8位字符集来表示256个字符

unicode标准

由于需要被用来表示各种语言的各种字符。因此Unicode被定义出来,用于创建一种定义文字和符号的通用标准

字节bytes、字(word)2个字节、双字(doubleword)、和四字(quadword)

在x86架构中,所有数据储存的基本单位都是字节。一个字节是8位

加法逆元

假如x+x'=x'+x=0,那么x'就称为x的加法逆元

MSB(most significant bit)

在x86处理器中,MSB表示符号位,8位的整数第一位是0,8位的负数第一位是1
对于16进制数,可以通过第一位的大小来判断是正数还是负数,如果>=8,则是负数,如果<=7,就是正数(8A57负数)
所以 ,n位有符号整数只用n-1位来表示数的范围
在书写较大的二进制数时,有些人喜欢每 4 位或 8 位插入一个点号,以增加数字的易读性。比如,1101.1110.0011.1000.0000 和 11001010.10101100
将表中余数列的二进制位逆序连接(D5,D4,…),就得到了该整数的二进制值 100101。**由于计算机总是按照 8 的倍数来组织二进制数字**,因此在该二进制数的左边增加两个 0,形成 00100101。

加法

在进行二进制数的加法时,有时最高有效位的运算会产生进位,这时**预留储存区的大小就显得很重要**,如果 **和数** 的储存为有9位,那么可以将和数表示位1 0000 0000。但是,如果和数只能表示位8位,那么他就等于0000 0000 也就是计算结果的低8位

求补

参考连接http://c.biancheng.net/view/3318.html
求补的过程是可逆的,并且补码的出现避免了为加减运算设置两种两种电路,假如A-B可以转化为A+(-B)通过加法器来完成
按位取反包括符号位
16进制数求补可以用15减去每位数然后整体加一

有符号2进制数到10进制数的转换

如果第一位是1,则是负数,求它的十进制表示:1)先对其求补,(按位取反,加一)将补码转换为10进制,如果为8,则其十进制数为-8

有符号10进制数到2进制数的转换

先将10进制数的绝对值转换为2进制,如果该数为负数,则再第一步的基础上对其求补码(即如果为负数,则在前一步的基础上求相应进制的补码)

将其他进制有符号数向10进制转换

如果为负数,则先求补码,否则保持不变
将上一步结果转换为10进制,如果初始值为负,加上负号

将有符号10进制数向其他进制数转换

先求该数的绝对值,将其转化为相应进制的数
如果该数为负,则对上一步结果求补
posted @ 2019-10-11 21:52  凌晨四点的蓝  阅读(357)  评论(0编辑  收藏  举报