【问题标题】:C to Python code conversion(print address-like values)C 到 Python 代码转换(打印类似地址的值)
【发布时间】:2013-04-16 10:29:35
【问题描述】:

我正在尝试将以下代码从 c 转换为 Python。 C 代码如下所示:

  seed = (time(0) ^ (getpid() << 16));
  fprintf("0x%08x \n", seed);

输出像 0x7d24defb 这样的值。

还有python代码:

  time1 = int(time.time())
  seed  = (time1 ^ (os.getpid() <<16))

输出值如:1492460964

我需要在 python 代码中修改什么以获得类似地址的值?

【问题讨论】:

    标签: python c code-conversion


    【解决方案1】:

    这取决于值的显示方式。 printf-functions 中的 %x 标志以十六进制显示给定值。在 Python 中,您可以使用 hex 函数将值转换为十六进制表示。

    【讨论】:

      【解决方案2】:

      等效的 Python 代码为:fprintf("0x%08x \n", seed);

      >>> '0x{:08x}"'.format(1492460964)
      '0x58f525a4"'
      

      请注意,单独的 hex() 不会像 C 代码那样将零填充到大小 8。

      【讨论】:

        【解决方案3】:

        我想这就是你的意思:

        >>> n =hex (int(time.time()) ^ (os.getpid() <<16))
        >>> print n
        0x431c2fd2
        >>>
        

        【讨论】:

          猜你喜欢
          • 2021-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-18
          • 1970-01-01
          • 1970-01-01
          • 2010-11-06
          • 1970-01-01
          相关资源
          最近更新 更多