将 C 字节数组转换为 long long

标签 c arrays byte long-integer

我的应用程序中有一个包含以下数据的 8 字节数组:

00000133339e36a2

此数据代表一个 long(在写入数据的平台上,在 Mac 上这将是一个 long long),其值为

1319420966562

在实际应用中这是一组半随机化的数据,所以数字总是不同的。因此,我需要将字节数组转换为可打印的 long long。

我试过将数据直接转换成 long long,但我想出了

1305392

我应该在哪里看到上面的数字。

对于那些在 C 字节操作方面比我更有经验的人,我将如何正确地将字节数组转换为 long long?

编辑:奇怪的是,您所有的解决方案都输出相同的数字:866006690。这是数据的最后四个 字节的十进制等效值。

最佳答案

这似乎是 union 有用的(罕见)情况之一:

union number
{
    char charNum[16];
    long long longNum;
};

关于将 C 字节数组转换为 long long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879953/

相关文章:

c - SDL 支持 Retina 显示

c - 如何确定真正需要的char数组的大小?

Javascript 数组方法查找超过第一个值的 indexOf

c - 为什么 Linux 内核中有 ktime_get 的粗略变体?

C - 使用数组实现的堆栈中的大多数成员

python - 有没有办法在 Pyspark 中动态猜测架构?

java - 在 Java 上将字符串分配给字节并在开头指定字符串长度

c# - 在 C# 中从 short 转换为 byte 时会发生什么?

java - 如何读取 .zip 文件的前两个字节以确认是否存在适当的魔数(Magic Number)?

c - 获取 char 并将其与 token 进行比较的函数