- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试环绕 ASCII 字母字符,以便从一个键执行移位。例如,如果键为 2,则将字母 A
移动为 C
。但是,我如何环绕 Z
以便使用模数运算得到 B
?
我正在尝试实现以下公式:
ci = (pi + key) % 26;
其中 ci
是第 i
个加密字母,pi
是第 i
个要加密的字母。
最佳答案
我相信您需要使用“相对”值,而不是绝对值。
使用类似的东西
ci = ((pi - 'A' + key) % 26 ) + 'A';
字符整数常量存储编码值,在本例中为 ASCII .此处,'A'
从偏移量(十进制值 65)开始,而不是从 0 开始。因此,在您可以使用 % 26< 对结果进行包装之前
操作,你需要得到那个偏移量。计算完成后,将偏移量加回去以获得正确的 ASCII 表示。
关于c - 我如何使用模运算来实现凯撒密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53886402/
我刚刚开始学习 C 语言类(class),并且遇到了命令行参数的问题。分配是这样的(还有更多,但这是开头有关命令行参数的部分): - 你的程序必须接受一个命令行参数,一个非负整数。 - 如果您的程序在
我需要检查命令行参数中是否有非数字字符。例如: ./problem 20x 应该打印出“不是数字”,因为它包含一个 x。我的代码似乎没有循环遍历命令行参数中的所有字符。 我基本上尝试了不同类型的循环,
这里我有从标准输入将字符流输入到数组中的代码。然后将该数组转换为二维数组。然后,它将该数组从行列顺序更改为列行顺序。然后它打印出创建凯撒移位加密的新数组。我遇到的问题是我的数组开始使用第二个用户输入的
我有点被这个问题困住了。当我运行程序时,由于某种原因,循环经过 z 的所有字母都不会打印。问题来自这个链接:http://docs.cs50.net/2016/x/ap/problems/caesar
我是一名优秀的程序员,十分优秀!