小编Bob*_*Bob的帖子

附加嵌套词典

如果您有一个嵌套字典,其中每个"外部"键可以映射到具有多个键的字典,那么如何向"内部"字典添加新键?例如,我有一个列表,其中每个元素由3个组件组成:外键,内键和值(AB 10).

这是我到目前为止的循环

for e in keyList:
    nested_dict[e[0]] = {e[2] : e[3:]}
Run Code Online (Sandbox Code Playgroud)

现在,不是将新键:值添加到内部字典中,而是将任何新键:值直接替换为内部字典.

例如,假设keyList只是[(AB 10),(AD 15)].该循环的结果是

{'A' : {'D' : 15}}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点,而不是它

{'A' : {'B' : 10, 'D' : 15}}
Run Code Online (Sandbox Code Playgroud)

python dictionary

8
推荐指数
1
解决办法
1万
查看次数

如何使用dprintf()

我被告知函数dprintf()在将数据写入管道时非常有用.问题是,我找不到任何解释如何使用它的例子.我已阅读该链接中的所有内容,但仍然不太了解它.

只是一个非常简单的例子将帮助我理解很多.例如,如果我有一个管道:

int fd[2];
pipe(fd);
Run Code Online (Sandbox Code Playgroud)

和一些pids

pid_t ID1, ID2, ID3;
Run Code Online (Sandbox Code Playgroud)

我如何使用dprintf()将这些pid写入管道?

c pipe

6
推荐指数
1
解决办法
9074
查看次数

分叉处理执行顺序

我知道有另一个同名的线程,但这实际上是一个不同的问题.

当一个进程多次分叉时,父进程是否在子进程之前完成?反之亦然?同时?

这是一个例子.假设我有一个for循环,将1个父进程分成4个子进程.在for循环结束时,我希望父进程通过管道向子进程提供一些数据.数据被写入每个子进程'各自的stdin.

在任何孩子执行他们的代码之前,父母会先发送数据吗?这很重要,因为我们不希望它从无效的stdin开始工作.

c fork

4
推荐指数
1
解决办法
591
查看次数

将 boost cpp_int 用于 pow() 和 rand() 等函数

Need to store very large integers, so I'm using boost::multiprecision::cpp_int. Problem is, I can't figure out how to use this to get the values I want from other functions like pow() and rand() when using this new type.

I need to store a very large number that is calculated by exponentiation. But the pow() function itself cannot handle such large numbers and rand() returns basic integers.

More specifically, I simply need to store the value 2^1024 and generate a random …

c++ boost pow

3
推荐指数
1
解决办法
5900
查看次数

检查指针是否指向给定数组

所以我有一个函数,它返回一个指向数组 A 中的元素的指针。我有另一个函数,该函数将该指针作为参数。但是,我需要该函数能够处理可能传递完全任意指针的可能性。

有没有办法能够检测指针是否指向结构内的某个位置?在这种情况下,我的数组 A?

我见过有关 C++ 的类似问题,但没有见过有关 C 的问题。

c arrays pointers

2
推荐指数
1
解决办法
3187
查看次数

RSA 加密:否定 d 解决方案似乎太大而无法使用

我已经实现了一个主要功能的 RSA 加密。它随机生成 2048 位素数pq ( n = pq ) 并且大多数时候我得到的值d与预期的一样相对较小。值 d 用于加密M^d mod n。

但是,有时我得到的d值是负数,这在 RSA 中通常是不受欢迎的。经过一些研究,我发现一个常见的解决方案是在这种情况下简单地添加phi (phi = (p-1)(q-1)) 。

d = d % phi;
if(d < 0)
    d += phi;
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我最终得到的dn一样大(超过 2048 位)。这似乎太大而无用。是否有我遗漏的东西,或者d的值实际上可以接受?

encryption cryptography rsa

1
推荐指数
1
解决办法
1717
查看次数

从文件中读取1个字节

我需要从文件中读取一个字节.通常在读取时,我使用char数组作为缓冲区.但是,我需要能够使用byte执行二进制操作,这不能用char数组完成.这是我得到的:

read(file, buffer, 1);
Run Code Online (Sandbox Code Playgroud)

我已经尝试将缓冲区设置为char和int,但两者都给我警告它需要一个void*参数.但是,当然,这不允许像&这样的二进制操作.

如何存储缓冲区以便我可以对其执行二进制操作?

c

-2
推荐指数
1
解决办法
1502
查看次数

标签 统计

c ×4

arrays ×1

boost ×1

c++ ×1

cryptography ×1

dictionary ×1

encryption ×1

fork ×1

pipe ×1

pointers ×1

pow ×1

python ×1

rsa ×1