c - Arduino 与普通 C 编译器的不同输出
问题描述
我目前正在 Arduino IDE 上实现 Misty Block Cipher,我遇到了一个奇怪的问题。请记住,我远不是一个称职的编码员。我从 github 页面获取代码,并在在线 C 编译器上编译,它工作得非常好,但在 Arduino 中,输出非常混乱。我试图调试这两个代码并在代码中打印不同的状态,我知道它在哪里搞砸了。
void misty1_encrypt(unsigned int *expkey, unsigned char *ptext,
unsigned char *ctext)
{
unsigned int D0, D1;
int i, j = 0;
for (i = 0; i < 32; i++) EK[i] = expkey[i];
D0 = D1 = 0;
for (i = 0; i < 4; i++) {
D0 = D0 << 8;
D0 |= ptext[j++];
}
printf("D0 atm:");
printf("%02x",D0);
printf("\n");
for (i = 0; i < 4; i++) {
D1 = D1 << 8;
D1 |= ptext[j++];
}
printf("D1 atm:");
printf("%02x",D1);
printf("\n");
}
在 C 编译器中打印上面的代码
old plaintext1 : 0123456789abcdef
D0 atm:1234567
D1 atm:89abcdef
但是,在 Arduino 中打印代码时,这就是我得到的
old plaintext1 : 0123456789abcdef
D0 atm:4567
D1 atm:cdef
我不想发布整个代码,所以它不需要 20 页,但值得一提的是,我正在根据 RFC2994 实现来实现它,可以在这里找到:https://www.rfc-editor。 org/rfc/rfc2994
根据我对编码的了解,我觉得问题可能是由于使用了 Unsigned Int,但我使用了 Uint_32t,并且得到了相同的输出。任何帮助将不胜感激。如果帖子有点令人困惑,我很抱歉,我会尽力回答任何可能有帮助的问题。
解决方案
推荐阅读
- javascript - Clappr 似乎无法拉取视频(使用 rtmp/nginx)
- javascript - req.body 给我 undefined
- python - 比较两个相似的python代码(Project Euler #3)
- python - 如何从 Mel Spectrogram 计算“归一化”频率?
- selenium-webdriver - 我无法根据其现有状态自动切换按钮
- javascript - 使用按键触发 JavaScript 动作
- java - Testing Localstack AWS with Apache Camel
- mongodb - 索引顶部的慢 MongoDB 查询
- dashdb - Db2 Warehouse: How to load table data using the V2 or V3 REST Interface
- python - Python dtype('O') 。处理对象数据类型。转换为字符串/整数