macOS 汇编

十进制与二进制的相互转换 十进制转为二进制,分为整数部分和小数部分 整数部分采用除 2 倒取余法: 用2去除十进制整数,可以得到一个商和余数;在用2去除商,又会得到一个商和余数,如此进行,知道商为0时为止,然后把先的到的余数作为二进制的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 小数部分采用乘2取整法,具体做法:用2乘十进制小数,可以得到积,将积中的整数部分取出,在用2乘余下的小数部分,又得到一个积,在将积中的整数部分取出,如此进行,直到积中的小数部分为0,此时0或1为二进制的最后一位,或者达到所要求的精度为止,然后把取出的整数部分按顺序排列起来,先取得整数作为二进制小数的最高位有效位,后取的整数作为低位有效位。 二进制转为十进制 按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数 预备知识 由于计算机的硬件决定,任何存储于计算机中的数据,其本质都是以二进制码存储。 根据冯·诺依曼提出的经典计算机体系结构框架,一台计算机由运算器、控制器、存储器、输入和输出设备组成。其中运算器只有加法运算器,没有减法运算器(据说一开始是有的,后来由于减法运算器硬件开销太大,被废了)。 所以计算机中没办法直接做减法的,它的减法是通过加法实现的。现实世界中所有的减法也可以当成加法的,减去一个数可以看作加上这个数的相反数,但前提是要先有负数的概念,这就是为什么不得不引入一个符号位。符号位在内存中存放的最左边一位,如果该位为0,则说明该数为正;若为1,则说明该数为负。 而且从硬件的角度上看,只有正数加负数才算减法,正数与正数相加,负数与负数相加,其实都可以通过加法器直接相加。 原码、反码、补码的产生过程就是为了解决计算机做减法和引入符号位的问题。 原码 原码:是最简单的机器数表示法,用最高位表示符号位,其他位存放该数的二进制的绝对值。 以带符号位的四位二进制数为例:1010,最高位为1表示这是一个负数,其它三位010,即02^2+12^1+0*2^0=2,所以1010表示十进制数-2。 正数 负数 0 0000 -0 1000 1 0001 -1 1001 2 0010 -2 1010 3 0011 -3 1011 4 0100 -4 1100 5 0101 -5 1101 6 0110 -6 1110 7 0111 -7 1111 原码的表示法很简单,虽然出现了+0和-0,但是直观易懂。于是开始运算 — 0001 + 0010 = 0011, 1+2=3; 0000 + 1000= 1000, +0+(-0)=-0; 0001 + 1001=1010, 1+(-1)=-2 ...

April 9, 2026 · 4 min · Theme PaperMod