二进制计算

  • 二进制的引入

十进制规则:满10进1,由数字0到9组成。

而所谓十六进制,八进制,二进制的规则也是类似。

这里为了区分十六进制和八进制,十六进制前面会加上0x,八进制前面会加个0作为区分

而二进制的规则类似于十进制,满2进1,由数字0到1组成。

  • 二进制转十进制

十进制中,每一位数有他的权重,比如123,实际上是由1*10²,2*10,3*10的零次方组成的,每一位都有他的比例。

因此推演至二进制也是如此,比如1101,从左往右,第一位是1*2的3次方为8,第二位是1*2的平方为4,第三位是0*2的一次方为0,最后一位是1*2的0次方为1,加在一起8+4+0+1=13因此这个二进制数1101就是十进制数13。

  • 十进制转二进制

看这个图二进制计算_第1张图片

 看这个图便可知道转换方法:除以2把余数都算出来,然后逆序写出来即可。

 

  • 二进制转八进制

我们知道,八进制序列由0到7组成,所以0到7由二进制表示是很容易的:

八进制0→二进制0

八进制1→二进制1

八进制2→二进制10

八进制3→二进制11

八进制4→二进制100

八进制5→二进制101

八进制6→二进制110

八进制7→二进制111

最多三位二进制数就可以表示八进制0-7

二进制转八进制时,每三个数字为一组从后往前翻译,最前面不够三位就用两位去翻译:

举个例子01101011

最后面的011→3

中间101→5

剩下01→1

连起来就是153

 

 

  • 二进制转十六进制

与八进制类似:

十六进制0→二进制0

十六进制1→二进制1

十六进制2→二进制10

十六进制3→二进制11

十六进制4→二进制100

十六进制5→二进制101

十六进制6→二进制110

十六进制7→二进制111

十六进制8→二进制1000

十六进制9→二进制1001

十六进制a→二进制1010

十六进制b→二进制1011

十六进制c→二进制1100

十六进制d→二进制1101

十六进制e→二进制1110

十六进制f→二进制1111

转换方法就是以四个数为一组翻译,如01101011

后面1011是b,前面0110是6,所以这就是十六进制的6b

 

至于八进制和十六进制转二进制,那不就逆序翻译了呗。例如十六进制的6b,先翻译6,然后翻译b,凑在一起写就行了

你可能感兴趣的:(c语言)