python3-int

发布时间 2023-04-17 00:40:27作者: 挖洞404

1、介绍

builtins.py文件中定义了int类,用于处理python中整数数据。

int也是python的基本数据类型之一。

2、类和初始化

class int(object):
    def __init__(self, x, base=10):

3、初始化

(1)字面量初始化

  • 支持十进制、二进制、八进制和十六进制
# 十进制
# a = 15
# a1 = -15
# a2 = 0
# a3 = +15
# print(a)

# 二进制,以数字0和字母b或B作为前缀
# b = 0b11
# b1 = 0B11
# b2 = -0B11
# print(b2)

# 八进制,以数字0和字母o作为前缀
# c = 0o15
# c1 = 0O15
# c2 = -0o15
# print(c)

# 十六进制,以数字0和字母x作为前缀
# d = 0x1a
# d1 = 0X1A
# d2 = -0x1A
# print(d2)

(2)类初始化

  • 支持直接转换整数或其他类型数值,支持对不同进制的字符串进行解析

# int类初始化
# 1)可以是直接传递int类型
e = int(15)  # 15
# 2) 可以是非int的数值类型,将保留整数部分
# e1 = int(15.2)  # 15
# e2 = int(15.7)  # 15
# e3 = int(-15.2)  # -15
# e4 = int(-15.7)  # -15
# 3) 可以是进制表示的字符串,以及对应的进制.大小写不敏感,但是无法正常解析会报错
# e5 = int("11", 10)  # 11
# e6 = int("0b11", 2)  # 3
# e7 = int("0o11", 8)  # 9
# e8 = int("0x11", 16)    # 17
# print(e5)
# print(e6)
# print(e7)
# print(e8)

4、属性

(1)real

  • int类型,获取真实数值
    • int类型就为其本身
    • bool类型继承int类,也具有该属性,True返回1,False返回0

5、方法

(1)to_bytes

  • to_bytes方法,返回bytes类型,即int对象存储的字节
  • length参数,int类型,表示用几个字节存储。如果小于需要的字节,会报错。大于需要的字节,会用0填充。
  • byteorder参数,必须是”big”,否则会报错
  • 该方法只能是由值为正数时调用,负数会报错
  • 注意,对于部分ascii字符,其不是显示\\x形式,而是显示ascii字符本身
print(int(15).to_bytes(1, "big"))  #b'\x0f'
print(int(15).to_bytes(3, "big"))  #b'\x00\x00\x0f'

(2)bit_length

  • 二进制存储需要的最小字节数
print(int(15).bit_length())  #4

(3)from_bytes

  • from_bytes方法,返回int类型,即实际表示的十进制数值
  • bytes参数,bytes类型,表示待解析的字节数据
  • byteorders参数,可以是little或big,little表示最高字节在右边,big表示最高字节在左边。一般是设置big
  • 转换的结果都是正数
print(f.from_bytes(b'\x00\x00\x00\x00\x96', "big") #150