目录:
一、二进制
----1.0、二进制转八进制(整数、小数)
----1.1、二进制转十进制(整数、小数)
----1.2、二进制转十六进制(整数、小数)
正文
一、二进制
概念:二进制是计算技术中广泛采用的一种数制。二进制数据是用 0 和 1 两个数码来表示的数。它的基数为 2,进位规则是"逢二进一"
,借位规则是"借一当二"
。
----1.0.0、二进制转八进制(整数)
二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:
----1.0.1、二进制转八进制(小数)
二进制小数转换为八进制小数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从高位向低位依次进行,低位不足三位用零补齐。下图演示了如何将二进制小数 0.1110111100 转换为八进制:
----1.1.0、二进制转十进制(整数)
二进制整数转换十进制整数时,使用"按权相加"
法,所谓"权"
就是"位权"
,从右往左,第i位的位权为,然后使用该位上的数字乘以"位权"
,最终将所有结果相加即可。下图演示了如何将二进制整数 1110111100 转换为十进制
----1.1.1、二进制转十进制(小数)
二进制小数转换十进制小数时,使用"按权相加"
法,所谓"权"
就是"位权"
,从左往右,第j位的位权为,然后使用该位上的数字乘以"位权"
,最终将所有结果相加即可。下图演示了如何将二进制小数 0.1110111100 转换为十进制
----1.2.0、二进制转十六进制(整数)
二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 1110111100 转换为十六进制
----1.2.1、二进制转十六进制(小数)
二进制小数转换为十六进制小数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从高位向低位依次进行,低位不足四位用零补齐。下图演示了如何将二进制小数 0.1110111100 转换为十六进制
PS:(原码、反码、补码)
因为"Python"
整型的字节是增量的,随着数字的增大而增大,这里就用一个字节八位来代表位数。(当然"Python"
中整型的字节至少是24。)
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import sys
>>> print(sys.getsizeof(0))
24
>>> print(sys.getsizeof(1))
28
>>> print(sys.getsizeof(2))
28
>>> print(sys.getsizeof(2 ** 8))
28
>>> print(sys.getsizeof(2 ** 16))
28
>>> print(sys.getsizeof(2 ** 32))
32
>>> print(sys.getsizeof(2 ** 64))
36
>>> print(sys.getsizeof(2 ** 128))
44
>>>
原码概念:将一个整数,转换成二进制,那么这个二进制就是该整数的二进制原码。
----正数:将该数绝对值转换为二进制;如:5 的原码就是 0000 0101 。
----负数:将该数绝对值转换为二进制,然后对高位补1,这个1的位置就是符号位;如:-5 的原码就是 1000 0101 。
反码概念:正数的二进制反码就是其二进制原码,负数的二进制反码就是将该数的二进制原码除符号位以外,每一位取反。
----正数:将该数的二进制原码不变就是该数的二进制反码;如:5 的反码就是 0000 0101 。
----负数:将该数的二进制原码除符号位外,每一位取反就是该数的二进制反码;如:-5 的原码就是 1111 1010 。
补码概念:正数的二进制补码就是其二进制原码,负数的二进制补码就是将该数的二进制反码 + 1。
----正数:将该数的二进制原码不变就是该数的二进制补码;如:5 的补码就是 0000 0101 。
----负数:将该数的二进制反码 + 1 就是该数的二进制补码;如:-5 的原码就是 1111 1011 。
进制对应关系:
微信扫码关注公众号《小九爱学习》