__int64
我对和有问题%I64u
。或者我的公式可能有问题。我试图模仿下面的输出。但是在某些订单项中发生了一件奇怪的事情。我不明白发生了什么,因为其他人打印得很好。
注意:这些列表的主要来源来自二进制原始数据。所以我从十六进制中获取它并尝试将其转换为__int64
. 我的列表由120
行项目组成,这些行项目输出良好,73
并且从行中失败74
,预期值为2276812558
并显示18446744071691396878
。从排队74
到排队120
的结果是intermittent
。其他没问题,其他线路失败。
有人帮忙吗??
资源:
74 2276812558 <-- expected output
...
110 88343310421 <-- expected output
111 101677534814 <-- expected output
112 116372862414
113 132547934111 <-- expected output
114 150330130721
115 169856101434 <-- expected output
116 193905458276
117 220253625665
118 249089120712 <-- expected output
119 280613529205
120 315042247217
这是我的代码:
longint = (__int64)((col[3] << 24) | (col[2] << 16) | (col[1] << 8)) | ((col[0]) | (__int64)((col[7] << 56) | (col[6] << 48) | (col[5] << 40) | (col[4] << 32)) << 32);
sprintf(longintbuf,"%I64u", longint );
.输出产生
74 18446744071691396878 <-- err
...
110 18446744071858548821 <-- err
111 18446744072307871326 <-- err
112 116372862414
113 18446744073113499551 <-- err
114 150330130721
115 18446744071766961210 <-- err
116 193905458276
117 220253625665
118 18446744073690569160 <-- err
119 280613529205
120 315042247217