问题标签 [dynamic-c]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
38679 浏览

c - C - 将整数转换为二进制数组

我对 C 语言很陌生。我将需要一个小程序来转换int为二进制文件,并且二进制文件最好存储在一个数组中,以便我可以进一步将它们分开以进行解码。我有以下内容:

从上面的代码中,我可以将二进制值存储在arr. 但不是得到二进制等价物:101000,数组现在就像{0, 0, 0, 1, 0, 1},这​​是正确答案的反转。所以问题是,如何以正确的顺序获得一个数组或者可能翻转它?我肯定有一件事,那就是最大数组长度不会超过8元素。

此转换将被重复使用。所以我打算把它放在一个函数中,这样我就可以调用该函数,传入一个整数,然后将数组作为返回值。那么另一个问题是,获取一个数组作为返回值是否可行?

0 投票
1 回答
131 浏览

assembly - 使用 jr cc 时出错,标签(值超出范围)

我的所有代码中都出现了这个错误。

该指令jr cc, label解释了这一点:

请注意,相对跳转从 JR 指令之后的指令的第一个字节的地址开始具有 [-128, 127] 的有限范围。

我尝试将指令放在nop后面,jr但仍然出现此错误。

也许是我不太明白这是如何工作的。如果有人可以向我解释更多(或举例),那就太好了。谢谢

0 投票
1 回答
1508 浏览

c# - AES 加密/解密 - 动态 C 到 C#

我在 Rabbit 微处理器上使用动态 C编程语言。我相信 Dynamic C 基于 ANSI-C89 有一些非常细微的变化。他们有一个 AES 加密库,我试图在将数据发送到我的服务器之前使用它来加密数据(收效甚微)。

这是我正在使用的基于 C 的 AES 函数的文档:

AESinitStream

语法: void AESinitStream(AESstreamState *state, const char *key, const char *init_vector);

描述:设置流状态结构以开始加密或解密流。特定的流状态只能用于一个方向。

PARAMETER1: state - 要初始化的 AESstreamState 结构

PARAMETER2: key - 16 字节密码密钥,使用 NULL 指针将防止重新计算现有密钥。

PARAMETER3:init_vector - 一个 16 字节数组,表示反馈寄存器的初始状态。流的两端必须以相同的初始化向量和键开始。

AES加密流

语法:void AESencryptStream(AESstreamState *state, char *data, int count);

描述:加密一个字节数组

PARAMETER1: state - AESstreamState 结构

PARAMETER2: data - 将被加密的字节数组。

PARAMETER3: count - 数据数组的大小

这是我的 C 代码:

输出:

键:65 65 55 68 68 52 48 51 48 53 57 78 54 55 48 56

数据:249 78 60 83 130 167 37

四:74 121 108 165 83 120 36 27 161 192 84 76 105 239 34 214

这是我的 C# 代码:

输出:

键:65 65 55 68 68 52 48 51 48 53 57 78 54 55 48 56

数据:249 78 60 83 130 167 37

四:74 121 108 165 83 120 36 27 161 192 84 76 105 239 34 214

解密:t{^^?d2

如您所见,我的解密文本中出现了一些奇怪的输出。谁能指出我正确的方向?

我已经尝试使用 Dynamic C 成功解密,但是如果您认为内置的 Dynamic C AES 库是罪魁祸首,您会推荐什么?

编辑: 所以我决定使用 C# 的 AES 库对其进行加密并得到不同的密码:

使用我最初使用的相同字符串、密钥和 IV 调用上述函数会产生以下密码:

249(正确)、43、74、118、241、179、235

我将 FeedbackSize 更改为 16,前两个字节是正确的,但它也给了我一个错误(要加密的数据长度无效。)并将数组大小减少到 6 个字节。我一无所知。

这是来自 Rabbit 的使用 AESencryptStream 的一些示例代码片段(他们选择将 IV 设置为与密钥相同的值)。看来我正在正确使用此功能,但如果我错了,请告诉我: