【C++】关于"^"的问题:是异或还是指数运算符和pow的返回值是double类型

本文探讨了C++中'^'运算符在加密程序中的应用,指出其通常用于异或操作,而非指数计算。作者提醒在需要指数运算时应使用`pow()`函数,并注意到`pow()`返回`double`类型,可能需要类型转换以避免不必要的小数部分。此外,文章还提及了`printf`和`cout`在处理`pow()`结果时的不同行为,以及运算符重载的相关知识点。
摘要由CSDN通过智能技术生成

之前在我的博客:https://blog.csdn.net/qq_43633973/article/details/100176902 里面提到了一题:

5.写一个加密程序,它通过cin从输入流中读入一段明文,通过cout将密文写到输出流,采用下面的简单加密方法:
(1)通过命令行参数读入密钥key,它是一个字符
(2)明文中字符c的密文为c^key[i]
(3)循环使用key的每个字符,直到处理完全部明文。如果key为空,则不作任何加密
(4)解密时,用同一个key重新加密密文,就可以得到明文

这题自己实现的时候对 c^key[i] 理解错误了应该,题目本来就是用这个符号当做异或符号,而不是指数。

*****

所以如果遇到指数就老老实实的用math.h头文件的pow(a,b)函数吧!

*****

有个小点,用pow函数的时候,用了c语言的printf函数,所以必须指定输出类型,发现pow返回的是double类型的数据。使用%f格式后不太不美观,后面跟了一堆小数0,所以强制类型转换下。以前用cout<<输出 从来没有注意过这个问题。因为看到书上说iostream头文件的输入输出函数 比较慢,C的输入输出比较快,所以现在在尝试多用C的输入输出形式。(C++可以向下兼容C)

可以简单看下:

#include <cstdio>
#inclu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值