- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到了问题mpz_t to unsigned long long conversion (gmp lib)的帖子Chris Jester-Young 给了我答案
mpz_t ull2mpz(unsigned long long ull)
{
char buf[40];
int len;
mpz_t result;
len = snprintf(buf, sizeof buf, "%llx");
if (len >= sizeof buf) { /* oops */ }
mpz_init(result);
len = gmp_sscanf(buf, "%Zx", result);
if (len != 1) { /* oops */ }
return result;
}
这里的问题是,如 How to convert GMP C parameter convention into something more natural? 中所述。 mpz_t 是一个数组。我怎样才能绕过这个(不做这些奇怪的事情,只是返回一个值)?如果我改为写
void mpz_set_ull(mpz_t val, unsigned long long ull){
char buf[40];
int len;
mpz_t result;
len = snprintf(buf, sizeof buf, "%llx");
if (len >= sizeof buf) { /* oops */ }
mpz_init(result);
len = gmp_sscanf(buf, "%Zx", result);
if (len != 1) { /* oops */ }
mpz_set(val,result);
}
我得到了错误的结果。
而且,他的代码是合法的 C 语言吗?
最佳答案
OP 未正确使用 snprintf()
。需要通过ull
。
使用
char buf[sizeof(ull)*CHAR_BIT/3 + 2]; // let the sizeof `buf` be sized per `ull` needs
...
snprintf(buf, sizeof buf, "%llx", ull); // Add missing `ull`
关于将 ull 转换为 mpz_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416425/
所以用下面的代码,把参数x的类型从const ull改为const ull&(用typedef unsigned long long ull) 在使用 gcc 4.7.2 和标志 -O3 -std=c
这个问题在这里已经有了答案: ULL suffix on a numeric literal (3 个答案) 关闭 3 年前。 在为测试内存而编写的模式末尾添加 ULL 有什么用? 例如 uint6
我写了一段代码: int main() { long long a = 1a1b2a2b3a3b4a4b; long *p1; long *p2; long *p3;
我看到了问题mpz_t to unsigned long long conversion (gmp lib)的帖子Chris Jester-Young 给了我答案 mpz_t ull2mpz(unsi
我遇到过这样的代码: line += addr & 0x3fULL; 显然,“U”和“L”不是十六进制数字。我猜那个十六进制数字文字末尾的'ULL'表示“无符号长长” - 我正确吗? (这种东西很难用
在 C++ 中对负常量使用无符号后缀是好习惯吗? 例如,使用安全吗, foo(-1ull); 代替 foo(unsigned long long(-1)); 最佳答案 它并没有真正用于“负常数”。 C
我有以下代码: #include #include #define APPEND(x, y) x ## y #define ULL(x) APPEND(x, ull) int main (void
我有一个巨大的 2048 位字符串(例如,长度为 256 的“加密”字符串)它可以采用随机值,这意味着不需要 ASCII 值。我的目标是将其分块为无符号长整型 (ULL) 值以用于某些自定义操作(仅在
我正在使用 MSYS2(64 位)将我的 C++ 代码从 Linux 移植到 Windows。关键库是 GNU MP (gmplib)。以下代码在 MSYS2/MinGW64 环境中给出了错误的结果,
我是一名优秀的程序员,十分优秀!