往常咱们在上C言语课时,进制数有二进制,八进制,十进制,十六进制,但这儿咱们为什么不讲八进制,由于在往常的作业中,简直不会用八进制。
002154?002154
十进制:咱们往常运用的数都是由0~9共十个数字组成的。例如1,9,11,231,2349等等数,一个数字最多只能表明到9,假如要表明大于9的数,就要由0~9这十个数字组成。例如咱们5+9的成果,用一个数字来表明它的成果,是不行的,只能“进位”,用14来表明;也便是满十进一。这些数都是十进制,所谓十进制便是由0~9个数字组成的数,逢十进一(满十进一)。
同花顺ifind?同花顺ifind
二进制:咱们无妨将思维拓宽一下,十进制是逢十进一,那么二进制便是逢二进一,也就二进制的数不能呈现大于2。例如,数字 0、1、10、111、100、1000001 都是有用的二进制。在核算机内部,数据都是以二进制的方式存储的,二进制是学习编程有必要把握的根底。
国信证券深圳红岭中路营业部,国信证券深圳红岭中路营业部
二进制加减法和十进制加减法的思维是相似的:
· 关于十进制,进行加法运算时逢十进一,进行减法运算时借一当十;
· 关于二进制,进行加法运算时逢二进一,进行减法运算时借一当二。
下面两张示意图具体演示了二进制加减法的运算进程。1) 二进制加法:1+0=1、1+1=10、11+10=101、111+111=1110
图1:二进制加法示意图
2) 二进制减法:1-0=1、10-1=1、101-11=10、1100-111=101
图2:二进制减法示意图
二进制在往常作业的运用的当地,如需求按位与或取反当地,一个数只取高多少位,或只取低多少位,然后变成什么数;都需求二进制的转化。
Eg:
If(val>>4==0)
{
Do some thing;
}
Else if(val<<3==0)
{
Do some thing;}else
{
Do other thing;
}
首要得把把val值 换成二进制,然后再右移或左移。注:二进制是现在简直一切以数字电路为根底的核算设备的内部处理数字的根底进制(它位只要0与1)。
十六进制除了二进制,十六进制也常常运用,乃至比二进制还要频频。十六进制中,用A来表明10,B表明11,C表明12,D表明13,E表明14,F表明15,因而有 0~F 共16个数字,基数为16,加法运算时逢16进1,减法运算时借1当16。例如,数字 0、1、6、9、A、D、F、419、EA32、80A3、BC00 都是有用的十六进制。
留意,十六进制中的字母不区别大小写,ABCDEF 也能够写作 abcdef。
下面两张图具体演示了十六进制加减法的运算进程。1) 十六进制加法:6+7=D、18+BA=D2、595+792=D27、2F87+F8A=3F11
图5:十六进制加法示意图
2) 十六进制减法:D-3=A、52-2F=23、E07-141=CC6、7CA0-1CB1=5FEF
图6:十六进制减法示意图
那么十六进制数在咱们作业中,一般用在哪里呢。除了数字电路顶用二进制来表明(咱们能看得到的。如1100,001000这样的表明的数)外,往常说的二进制保存文件 ,数据以二进制在串口或网串中传输,它们都是用十六进制来显现的。由于十六进制恰好是2的4倍,表明一个字节的时分只是需求2个十六进制数就能够表明出来,因而大都用2个十六进制来表明一个字符,看上去比较明晰(也能够节省数据长度且换算联系适当直观)。
假如我们对八进制有爱好,能够去了解一下
八进制八进制有 0~7 共8个数字,基数为8,加法运算时逢八进一,减法运算时借一当八。例如,数字 0、1、5、7、14、733、67001、25430 都是有用的八进制。下面两张图具体演示了八进制加减法的运算进程。1) 八进制加法:3+4=7、5+6=13、75+42=137、2427+567=3216图3:八进制加法示意图
2) 八进制减法:6-4=2、52-27=23、307-141=146、7430-1451=5757
图4:八进制减法示意图
二进制,十六进制在平进作业顶用到的当地特别多。假如对二进制与十六进制不了解,就很难把作业做好。所以我们一定要了解透。
以上的图例是学习一位大佬的,觉得写的挺好的,加上作业自己总结的。共享给我们。