汇编整理一

二进制

自右向左,从 0 开始顺序增量编号。左边的位称为最高有效位(Most Significant Bit, MSB)右边的位称为最低有效位(LSB, least significant bit)。一个 16 位的二进制数,其 MSB 和 LSB 如下图所示:


二进制整数可以是有符号的,也可以是无符号的。有符号整数又分为正数和负数,无符号整数默认为正数,零也被看作是正数。

无符号二进制整数到十进制数的转换

对于一个包含 n 个数字的无符号二进制整数来说,加权位记数法(weighted positional notation)提供了一种简便的方法来计算其十进制值:

dec = ( Dn-1 x 2n-1 ) + ( Dn-2 x 2n-2 ) +…+ ( D1 x 2)+ ( D0 x 2)

D 表示一个二进制数字。比如,二进制数 00001001 就等于 9。计算该值时,剔除了数字等于 0 的位:

( 1 X 23 ) + ( 1 X 20 ) = 9

下图表示了同样的计算过程:

 

无符号十进制整数到二进制数的转换

将无符号十进制整数转换为二进制,方法是不断将这个整数除以 2,并将每个余数记录为一个二进制数字。下表展示的是十进制数 37 转换为二进制数的步骤。余数的数字,从第二行开始,分别表示的是二进制数字D0
D1、D2、D3、D4 和 D5

 

除法 余数 除法 余数
37/2 18 1 4/2 2 0
18/2 9 0 2/2 1 0
9/2 4 1 1/2 0 1

将表中余数列的二进制位逆序连接(D5,D4,…),就得到了该整数的二进制值 100101。由于计算机总是按照 8 的倍数来组织二进制数字,因此在该二进制数的左边增加两个 0,形成 00100101。

posted @ 2020-07-20 16:59  monett  阅读(70)  评论(0)    收藏  举报