python - 10位数字和日期时间有什么关系

标签 python math logic

我搜索这些时间(以秒为单位)和这些时间戳之间的关系

30 seconds => 1189765120
1 minute => 1198153728
2 minutes => 1206542524
4 minutes => 1214930944

这些信息来自“Image Line FL Studio”音乐软件。

我尝试用Python编写一个程序来操作FLP文件,但我搜索该函数但没有成功,例如: F(30) = 1189765120

最佳答案

好吧,这次我找到了答案(长度的指数级数 1/2, 1, 2, 4 分钟,以及计数位,而 0 几乎总是给我提示:它看起来像浮点表示)

#include <stdio.h>
#include <stdint.h>

int main(){
    uint32_t l[]={1189765120, 1198153728, 1206542524, 1214930944};
    for(int i=0; i<4; i++){
        printf("%f\n", *(float *)(l+i));
    }
}

给出

30000.000000
60000.000000
120001.468750
240000.000000

所以,这里的只是以毫秒为单位的时间的 float32 表示形式。信息毕竟在那里,而且确实是一个时间戳。在第三种情况下,需要额外的毫秒和一些微秒和纳秒,以使逆向工程变得更加困难。

编辑: 因为它被标记为Python(虽然它更多的是一个数学难题而不是一个编码问题),这里是你如何在Python中做到这一点(在C中处理位更自然,但Python中有一个包可以做到这一点)

import struct
l=[1189765120, 1198153728, 1206542524, 1214930944]
for x in l:
    print(x, '=>', struct.unpack('f', struct.pack('I', x))[0])

第二次编辑:直到现在我才意识到你的问题是 F(30)=1189765120,而不是相反(我太专注于这个谜题),好吧,事实恰恰相反

import struct
def F(sec):
    return struct.unpack('I', struct.pack('f', sec*1000))[0]
>>> F(30), F(60), F(120), F(240)
(1189765120, 1198153728, 1206542336, 1214930944)

请注意 F(120) 与您提供的数字略有不同。通过额外的微秒来解释

关于python - 10位数字和日期时间有什么关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74246934/

相关文章:

algorithm - 如何用数学方法表述这样的问题? (续行搜索)

c# - 围绕另一个点旋转 3D 对象 C#

PHP 逻辑,与特定日期进行比较

macos - didBegin联系逻辑 OSX swift

python - 对不返回值的函数使用 map()

python - 检查列表理解中列表的长度(基于列表理解中元素的计数迭代)

python - 卸载robotframework后pip freeze抛出错误

python - 为什么 Python Fabric 用连字符替换下划线?

php - 需要帮助使 sql 数据可用于数学函数 php

c - 如何在 C 中没有 "not"的情况下执行 "!"