第02章_简单信息的表达与运算.pptVIP

  • 16
  • 0
  • 约1.42万字
  • 约 70页
  • 2017-10-14 发布于湖北
  • 举报
第02章_简单信息的表达与运算

【思考题】编写程序保留一个数的第3个字节(左起)。 * 2.3.5 加密解密 【例2-14】一段意义明确的文字,经过变换变得无法理解。合法用户可以将其变回原来的文字,而不合法用户则不能,这就是加密。加密的一种方法叫替换加密法,将原来文字中的字母用其后的第k个字母替代(26个字母的字母表看做是循环的,即z后的字母是a)。例如,k=3,对“today”的每一字母用其后的第3个字母代替,结果为“wrgdb”。 编写程序,用户从键盘输入一个小写字母和k值,将输入的小写字母用替换加密法加密并输出加密后的字母。 * 【算法描述】替换加密 ①输入单个小写字符c,和数k; ②计算它在英文字母表中的序号n=c-a(从0开始); ③将序号n加k(n=n+k); ④如果超出了25,则除26求余(n=n%26); ⑤输出新序号位置的字母(ec=n+a)。 * #include iostream //包含基本输入输出库头文件 using namespace std; //使用名字空间 int main() //主函数 { char c; //定义字符变量,存放原字母 char ec; //定义字符变量,存放加密后的字母 int k; //定义整型变量,存放密钥k coutPlease input a lower character and kendl; //提示 cinck; //输入 ec=((c-a)+k)%26+a; //加密算法 coutecendl; //输出密文字母 return 0; //程序结束, } * 【思路扩展】 (1)如何实现大写字母的加密呢? (2)如何解密? (3)该例实现一个字母、一个密钥的加密。输入一组数据,程序结束。这非常不实用。如何实现程序的一次运行,可以输入多组数据内? (4)上面的程序也只能实现小写字母的加密,也就是说用户只能输入小写字母。要同时实现大写和小写字母的加密呢? 这个程序还有很多问题,例如,可否输入一次密钥,多次输入待加密字母?如果用户输入的不是字母怎么办呢?真正加密输入的应是一段话,这又怎样实现呢?随着C++知识的丰富,这些都可迎刃而解。 * 小结 数据类型,为什么要划分数据类型 常量,字面量,符号常量 变量,标识符 定义、初始化、赋值、使用,先定义,有赋值 转义字符 各种运算符,自增、自减,问号表达式,逗号表达式 逻辑型变量,逻辑值,逻辑值的表示和判断 相同类型的混合运算表,不同类型的混合运算 运算符的优先级 * 实验和作业 实验 习题2——2、3、5 作业 习题2——6,7,8、11 * 谢谢 * 2.2.5位运算符和位运算表达式 1.按位与 int x=11,y=7,z; z=xy?; 11的二进制表示0000000000001011 7的二进制表示:0000000000000111 0000000000001011 0000000000000111 -------------------------------------------------------------- 0000000000000011 则,z=xy的结果十进制表示为3。 * 【思考题】能否通过“与”运算使一个数的指定位为1或为0?如果不能为什么?如果能,如何实现,请举例说明。 * 2.按位或 int x=11,y=7,z; z=x|y?; 0000000000001011 | 0000000000000111 --------------------------------------------------------- 0000000000001111 则,z=x|y的结果的十进制表示为15。 按位或运算可以方便地将一个数的某些二进制位设置为1。如果两个数代表两个集合,则“或”运算相当于它们的“并”运算 * 3.按位异或 int x=11,y=7,z; z=x^y?; 0000000000001011 ^ 0000000000000111 -----------------------------------------------------

文档评论(0)

1亿VIP精品文档

相关文档