进制

时间:2021-08-09
本文章向大家介绍进制,主要包括进制使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

进制转换

任意进制到十进制的转换

公式:系数*基数的权次幂相加

  • 系数:每一【位】上的数

  • 奇数:几进制

  • 权:从数值的右侧,从0开始,逐个+1



十进制到任意进制的转换

公式:除基取余

使用源数据,不断地除以基数得到余数,直到商为0,再将余数倒着拼起来。



快速进制转换法
二进制转十进制
  • 8421码(BCD码Binary-Coded Decimal)
128 64 32 16 8 4 2 1

对应1位相加即可得到十进制

二进制转八进制

将三个二进制看作一组,再进行转换

例:111100:最终转换为八进制结果为0D74

二进制转十六进制

将四个二进制看作一组,再进行转换

例:00111100,转换为16进制:0X3C

二进制的原码、补码、反码

原码:

二进制定点表示法,最高位为符号位,0表示正,1表示负,其余位表示数值的大小。

反码:

正码的反码与其原码相同;负数的反码是对其原码逐位取反,符号位除外。

补码:

正数的补码与其原码相同;负数的补码是在其反码的末位+1。

例:
-7
原码:1 0000111
反码:1 1111000
补码:1 1111001

位运算

位运算是对于二进制来说的运算

0表示false,1表示true

  • 位与(&):全都为true时才为true

  • 位或(|):有一个为true时就为true

  • 位异或(^):相同为false,不同为true

  • 取反(~):全部取反

位移运算符

<<:有符号左移运算:二进制位向左移动,左边符号位丢弃,右边补齐0。

向左移动几位,就是乘以2的几次幂

>>:有符号右移运算:二进制位向右移动,左侧用符号位补齐,右侧最后一位丢弃

向右移动几位,就是除以2的几次幂

>>>:无符号右移运算符:无论符号位是正数还是负数,都用0进行补位



一个数被同一个数异或两次,不会发生变化

原文地址:https://www.cnblogs.com/XukaiCode/p/15120508.html