【问题标题】:Python Converting A String to binary then an INTPython将字符串转换为二进制然后是INT
【发布时间】:2021-06-29 07:16:39
【问题描述】:

我正在研究 IPV4 细分,其中我在字符串变量中有必要的值来表示二进制文件

(例如:00000000.00000000.00001111.11111111)这是一个字符串

我需要一种方法将此字符串转换为二进制,然后将其正确转换为正确的整数值

(在这种情况下为0.0.15.255

我看到一些帖子询问类似的问题,但尝试将其应用于我正在做的事情没有成功

抱歉,如果这没有意义,这是我第一次在这里提出问题

【问题讨论】:

    标签: python string binary


    【解决方案1】:

    首先在. 上拆分字符串,然后使用int 内置传递base=2 将每个转换为二进制表示的整数等价物,然后转换为字符串,最后将它们全部连接到.

    >>> text = '00000000.00000000.00001111.11111111'
    >>> '.'.join(str(int(i, base=2)) for i in text.split('.'))
    
    # output
    '0.0.15.255'
    

    【讨论】:

      【解决方案2】:

      你应该拆分数据,转换和合并。

      data = "00000000.00000000.00001111.11111111"
      data_int = ".".join([str(int(i, 2)) for i in data.split(".")])
      print(data_int)  # 0.0.15.255
      

      【讨论】:

        【解决方案3】:

        您可以使用 int()base 参数来实现此目的。

        您可以了解更多关于int(x,base) - here

        • '.' 处拆分字符串并将其存储在列表中lst
        • 对于lst 中的每个项目,使用int(item, base=2) 将项目(二进制字符串)转换为十进制,然后将其转换为字符串类型。
        • 使用. 加入lst 的内容
        s = '00000000.00000000.00001111.11111111'
        
        lst = s.split('.')
        lst = [str(int(i,2)) for i in lst]
        
        print('.'.join(lst))
        
        
        # Output
        
        0.0.15.255
        

        【讨论】:

          【解决方案4】:

          欢迎!一旦你有这样的字符串

          s = '00000000.00000000.00101111.11111111'
          

          你可以在一行中得到你的整数:

          int_list = list(map(lambda n_str: int(n_str, 2), s.split('.')))
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-08-31
            • 2013-01-30
            • 1970-01-01
            • 2014-11-28
            • 2012-01-08
            • 2017-02-04
            • 2017-07-28
            • 1970-01-01
            相关资源
            最近更新 更多