什么是十进制和二进制:看懂转换方法
什么是十进制和二进制,十进制是以10为基数、逢十进一的计数体系,日常算数、财务记账大多使用;二进制是以2为基数、逢二进一的计数体系,是计算机底层存储、运算的基础,二者可以互相转换,十进制适合人脑快速理解大数,二进制适合电路只用高低电平实现信号识别,该转换规则适合学生学习数制基础、编程新手理解底层原理,不适合直接用于芯片硬件底层汇编指令的精细调试场景。
十进制基础规则
十进制包含0、1、2、3、4、5、6、7、8、9一共10个数字符号,每一位的位权是10的n次方,n从0开始由右向左递增,数字365拆解之后等于3乘以10的2次方,加上6乘以10的1次方,加上5乘以10的0次方。你做加减乘除、购物算账、测量读数时,默认都在使用这套计数方式,进位逻辑是某一位数字加到9之后,再加1就归零并且向左边相邻位进1。
十进制没有符号数量上的限制,想要表达更大数值,只需要增加数位,普通人不需要额外工具就可以口算简单的十进制运算,这也是它在生活里大范围普及的主要原因。
二进制基础规则
二进制只包含0和1两个数字符号,每一位的位权是2的n次方,n同样从右向左从零开始递增,二进制数101拆解后等于1乘以2的2次方,加上0乘以2的1次方,加上1乘以2的0次方,换算成十进制就是5。计算机内部晶体管只有导通、截止两种稳定状态,刚好对应1和0,所以硬件层面优先选用二进制,进位逻辑是某一位数字加到1之后,再加1就归零并且向左边相邻位进1。
二进制表达相同数值需要更多数位,大数书写、口算都容易出错,人类直接用它计算的效率偏低,日常场景很少直接书写二进制数字。
| 对比项 | 十进制 | 二进制 |
|---|---|---|
| 基数 | 10 | 2 |
| 可用数字 | 0到9 | 0、1 |
| 主要使用主体 | 人 | 计算机硬件 |
| 进位规则 | 逢十进一 | 逢二进一 |
十进制与二进制互相转换
十进制整数转二进制使用除2取余法,你把目标十进制数字反复除以2,依次记下每一次除法得到的余数,直到商变成0,最后把余数从后往前排列,得到的串就是对应二进制数,例如十进制13,依次除以2得到余数1、0、1、1,逆序排列得到二进制1101。小数部分转换需要乘2取整,反复将小数部分乘以2,取出整数位,剩余小数继续运算,达到你需要的精度就停止。
二进制转十进制使用位权求和法,你从最右侧数位开始,给每一个1乘上对应位置2的次方,全部结果相加,就能得到十进制数值,数位上是0的项可以直接跳过计算,减少运算步骤。
小数转换存在截断误差。
你在编程写代码时输入的数字,代码解释器会自动把十进制转为二进制交给CPU运算,运算完成后再转回十进制展示给你,这个转换过程由程序自动完成,大多数应用开发场景不用手动写转换步骤,只有底层开发、数字电路实验时,才需要手动验算数制。
浮点数的二进制存储遵循IEEE754标准,这个标准规定了计算机存储小数的二进制编码格式,部分十进制小数无法用二进制精确表达,会产生微小偏差,这类偏差在金融精确计算场景下需要额外规避。
