将C++ to memcpy uchar 翻译成 int64
Translating C++ to memcpy uchar into int64
好吧,我正在复制一些需要在我的服务器(Python)上运行的代码(C++),一切都很顺利,直到下面的位。
简而言之,这是我在C++程序中拥有的内容:
int main() {
...
...
int64 value = 0;
bool blah = function1(&value);
...
}
bool function1(int64* value)
{
...
uchar pb[8];
pb = 'x00x00x00x00*Q x00';
memcpy(value,pb,8);
//now value has the value '0x7fff33516970'
}
所以是的,它会创建一些 char 数组,然后将值复制到 int64 中。
现在我的问题是:如何在 Python 中做到这一点?我的意思是,我有相当于 pb 的字节串,但我不知道从那里开始(特别是因为有所有这些零......
看看struct
模块,尤其是struct.unpack
。你可以做:
value, = unpack("q", string)
"q"表示 64 位有符号整数,字符串只是数字的原始字节表示形式。记住,小心字节序!
单
引号用于字符,而不是C++中的字符串。应该"x00x00x00x00*Q x00"
.此外,代码几乎没有意义,因为内存是为pb
分配的,然后用常量字符串覆盖。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 不同翻译单元中不可重载的非内联函数定义
- 需要将一行代码从C++ Qt翻译成PyQt
- 为什么未命名的结构内联变量在每个翻译单元中没有相同的地址?
- 在没有 API 的情况下使用谷歌翻译文本
- 如何执行 cppcheck 交叉翻译单元 (CTU) 静态分析?
- 模板变量是否允许在多个翻译单元中并有效合并?
- 是否允许类在程序中的不同翻译单元之间具有不同的定义?
- 你能把一个向量<int64>投射到一个向量<uint8>吗
- 我怎样才能代替使用新的使用malloc翻译
- 为什么具有静态存储持续时间的同一内联变量在包含在 VS2017 编译的两个翻译单元中时会构造和销毁两次
- 如何将 'in' 关键字从 python 翻译成 c++?
- 为什么不同的翻译单元没有独立和沙盒的内存空间?
- 如何用c语言翻译openssl命令pbkdf2
- 为什么编译器不在同一翻译单元中警告 ODR 违规
- 静态变量在同一个翻译单元中被静态方法使用时是否保证被初始化?
- 如何翻译这个给定代码中的 ::* 运算符和member_fn?
- 来自不同翻译单元的函数会干扰吗?
- Int64 和 time_t 之间的 C++ 重载歧义
- 将C++ to memcpy uchar 翻译成 int64