已知二进制数A=0.1001,B=-0.1101,求A÷B的商及余数

理解二进制十六进制的最佳方法是先透彻的领悟十进制计数系统十进制(Decimal)系统是基于10的计数系统(词根Deci-表示10)。“基于10”指的是由10个数位(Digit)0到9来表示数。
使用“位置(Place Value)”,可以用不多的几个数位(如10个十进制数位)来表示很大的数。所有计数系统的位置从最右边开始,是基数的0次幂。从右往左,基数的幂依次增加1:
对任何基数,前两个位值是最容易计算的。任何数的0次幂是1,所以100=1。任何数的1次幂就是它本身,所以101 = 10。第三个位值也是容易计算的,只要简单地用第二个位值乘以基数就可以。事实上,每一个位值都可以用它前面一个位值乘以基数计算出来。所以上面5个位值是:

根据位值来读一个数,比如57 258,指的是有5个10 000,7个1 000,2个100,5个10,以及8个1。

计算机从最底层来看,只不过是电子开关的集合而已。而数字和字符是由这些开关的状态来表示的。由于一个开关仅有两种状态——“开”或者“关”,所以它使用二进制(Binary),或者说基数为2的计数系统(词根bi表示2)。一个基数为2的系统仅仅有两个数位:0和1。计算机通常将这两个数位集合成8个位值,即一个字节(Byte)或八位组字节(Octet)。

 因此,二进制八位组可以这样理解:

或者:128 + 16 + 4 + 2 + 1 = 151 对于二进制数,因为每一个位值要么就是该值本身,要么就没有,所以比较简单。

另外一个例子: = 128 + 64 + 32 + 8 + 1 = 233。就是说,将二进制转换为十进制仅仅是一个将位值相加的过程,将十进制转换为二进制仅仅是将位值相减的过程。

例如,要将十进制数178转为二进制,首先把178减去最高的位值:

2、50比64小,该位值上有一个0。

5、2比8小,该位值上有一个0。

6、2比4小,该位值上有一个0。

8、0小于1,该位值上有一个0。

把这些步骤的结果综合起来,用二进制表示178是:。

另外一个例子可能会有帮助。给出110:

1、110比128小,所以在该位值上有一个0。

4、14比16小,所以在该位值上有一个0。

8、0比1小,所以在该位值上有一个0。 所以,110用二进制表示就是:。 

十六进制数   写一个二进制八位组并不有趣。对于经常要使用这些数字的人来说,受欢迎的是更简洁的表示法。一个可能的表示法是为每一个可能的八位组分配一个单独的字符。但是,8位有28 = 256种不同的组合,所以,用单独的字符表示所有八位组需要256个数位,或者说一个基数为256的计数系统。 将一个八位组看作是两个各4位的组合或许会更简单一些。例如,可以看作是1101和0011。对4个位来说,有24 = 16种不同的组合,所以有基数16,或者说十六进制(Hexadecimal)计数系统,一个八位组可以用两位来表示(词根hex的意思是“six”,deci的意思是“ten”)。

十六进制 十进制 二进制

因为十六进制和十进制的前10个数字是一样的,所以我们有意在一个十六进制数前面加0x,或者在后面加一个h,以便和十进制数区分开。例如,十六进制数9应该写成0x9或者9h。 刚才学过二进制的表示法,很容易写出一个4位二进制数的十进制表达形式。同样也很容易将一个十进制数转为十六进制。

于是,我们可以很容易地通过3个步骤将一个二进制八位组转为十六进制:

1、将八位组分成2个4位的二进制数。

2、将每个4位二进制数转为十进制。

3、把每个十进制数用十六进制来表示。

例如:把转为十六进制:

把十六进制转为二进制是上述3步的简单逆序。例如,把0x7B转为二进制:

3、把2个4位二进制数写在一起就是0x7B = ,十进制为123。

知识点一:定点机器数表示

小数,整数的原码,反码,补码,移码表示法

机器数:机器识别的无符号指令。例如01011B
真值:带符号。例如+1011B

正数的原码,反码,补码完全相同
负数的原码:二进制真值表示,符号位+变0,符号位-变1
反码:除符号位之外其他位对原码取反
补码:在反码的基础上末尾加上1

移码:在补码的基础上符号位取反,其他的数值位相同

在补码中,0只有一种表示方式,但在原码和反码中,0有+0和-0两种表示方式,所以选择补码更有利于数据表示

例题:学习通第三章作业1:
T4,求机器数的二进制真值
T5,原码,反码,补码表示的定点小数和定点整数

小数点前的数字表示符号 -为1,+为0

真值为0.1001(注意真值不等于原码,不要混淆

这是一个负数,1表示 --,即 真值为–0.0111

1表示–,转化为真值即:-0.1101

0表示正数,正数原反补码相同不要混淆),故原码为0.1101,故真值为+0.1101

1表示负数,[x]原=,故表示的X真值为-

,[x]补=,0表示正数,故表示的X真值为+B

原码,反码,补码的计算:
[x]原+[Y]原 运算前要判断符号是否相同,同为加,异为减

反码运算相对原码简单。符号位参与运算,只需设置加法器,符号位的“进位”位需加到最低位

补码的运算简单,只需要设置加法器

知识点二:数值数据表示
知识点三:校验码:奇偶校验码,循环冗余校验码

定义:奇偶校验码中,若1的个数为偶数,则为偶校验码,若1的个数为奇数,则为奇校验码

校验电路中1个数为奇数,则为奇校验,1个数为偶数,则为偶校验

工作原理:在编码中加入一位冗余位,编码中出现一个错误,奇偶性发生变化时,就成为非法代码。
有奇数个“1”的字节的和为1,有偶数个“1”的字节的和为0

3,不能检测偶数位错误,无错结论不可靠

码距的概念:任意两个合法编码之间不同二进制位数的最小值,例如:0011与0001的码距为1

例如:字符A的ASCII码为41H(十六进制,十进制为65),化为二进制为,有偶数个1。
若采用奇校验法,在最前面加上一个1后,变成1 ,化为16进制,即c1H
若采用偶校验法,在最前面加上一个0,变成0 ,化为16进制,即41H

字符A的奇校验码为C1H

总结:求奇校验码用奇校验法,求偶校验码用偶校验法

知识点四:浮点机器数表示方法

浮点机器数:即既有整数部分又有小数部分的数

IEEE754标准采用的格式:
单精度:8位偏指数E + 23位有效位数M
双精度:11位偏指数E + 52位有效尾数M

指数采用偏移值(即阶码部分采用移码,但尾数、阶码均用补码表示),其中单精度偏移值为127,双精度为1023,将浮点数的阶码值变成非负整数,便于浮点数的比较和排序

IEEE754尾数形式为1.XXXXXX。其中M部分保存的是XXXXXX(1被隐藏),从而可保留更多的有效位,提高数据表示的精确度

浮点数据表示,即把数的范围和精度分开来表示
使用场合:数的表示范围超过了定点数能表示的范围时
表示的浮点数:N=M x(2的E次方)
E:表示阶码位数,决定数据的范围
M:表示尾数位数,决定数的精度
在字长确定后,如果想表示更大的数,就必须牺牲精确度

上面为单精度,下面为双精度

例: 若X和Y均是IEEE 754 标准的单精度浮点数,
(1)若X浮点数的存储形式为H,求X的真值。

机器零:位于最大负数和最小正数之间的数据(除0外)
机器无法表示,称为下溢
以下两种情况时,会发生下溢:

2,当阶码的值遇到比它能表示的最小值还要小时(阶码负溢出)

对于非规格化浮点数,可以通过修改阶码和左右移尾数的方法来使其变为规格化浮点数,这个过程叫做规格化;

小数点不动,尾数右移1位,阶码加1的规格化,则称为右规 小数点不动,尾数左移1位,阶码减1的规格化,则称为左规

规格化只需将小数表示成0.XXX即可
小数点移动了六位,6转换为二进制即110

十进制数-0.1953125表示为二进制数规格化浮点数是多少,设浮点数的格式为阶符、尾符各为1位,阶码为3位,位数为7位,答案是E9CH

注:规格化只需将二进制数写成尾数为0.1*****(即0.1开头)此种格式即可。
(2)阶码为-2,用3位二进制表示为-010B(注:前面补0),求出补码为1110。
(3)7位尾数为-0.1100100(注:后面补0),求出补码为。 (4)规格化浮点数形式为:阶码+尾数,即为1110
,转换为十进制为E9C。

知识点五:非数值数据表示与编码

ASCII码:7bit表示一个字符,一个字符使用一个字节来表示

字符数据通常采用7位的ASCII码来表示
汉字的输入编码用于使用西文标准键盘输入汉字,
汉字的机内码则用于汉字的存储、检索和处理,
汉字的字模码则用于汉字的显示和打印输出。

例题: 在一个应用系统中,需要构造一个包含了100个汉字的汉字库,假设采用16×16的汉字字形,问:

(1)该汉字库所占存储容量是多少字节?

(2)一篇由50个汉字构成的短文,需要占用多少字节的存储容量来存储其纯文本?

汉字库中存放汉字字模码,容量=存储每个点阵的字节数 x 汉字数 x 点阵方法数
100个汉字的汉字库存储容量为:16×2×100=3200字节;

50个汉字构成的短文,需要占用2 ×50=100字节。

我要回帖

更多关于 1101011011除以10011余数 的文章

 

随机推荐