关于numpy.binary_repr()的解释

 这里注意一下原码/反码/补码的概念:

如果是正数,原码/反码/补码是完全一样的;

如果是负数,其原码第一位为符号位,即1,其反码/补码的符号位位与之相同,固定为1.反码为原码按位取反,补码为反码末尾加1

如下:

-1:

原码:10000001。
反码:11111110。
补码:11111111。

-127:

原码:1111 1111。
反码:1000 0000。
补码:1000 0001。

+0:

原码:00000000 。
反码:00000000 。
补码:00000000 。

-0:

原码:10000000。
反码:11111111。
补码:00000000。

注意 +0和-0的补码是一样的

-128没有原码和反码,-128的补码= 1000 0000 

numpy.binary_repr()函数

def binary_repr(num, width=None):
    """
    Return the binary representation of the input number as a string.

    For negative numbers, if width is not given, a minus sign is added to the
    front. If width is given, the two's complement of the number is
    returned, with respect to that width.

这个函数以字符串形式返回输入数值的二进制表示,对于负数,如果没有给出宽度width,前面加一个负号,如果宽度width给出了,返回的是这个数的二进制补码。

结果如下:

>>> np.binary_repr(12)
'1100'
>>> np.binary_repr(-12)
'-1100'
>>> np.binary_repr(-12,width = 8)
'11110100'

你可能感兴趣的:(人工智能,numpy,python,开发语言)