定义为整数,但编译器认为其中一个是双精度
Defined as integers but the compiler think one of them is double?
这是我写的代码,虽然里面没有双变量,但g++抛出了这个警告:"类型' double '和' int '的无效操作数为二进制' operator% 'C = pow(m,e)%n;"这是怎么回事?"
#include <iostream>
#include <boost/dynamic_bitset.hpp>
#include <math.h>
using namespace std;
int main()
{
boost::dynamic_bitset <> seq(5);
int key = 0;
int p = 0, q = 0;
int n = 0;
int f = 0;
int d = 0;
int e = 0;
int c = 0;
int m = 0;
int t = 0;
cout << "Enter a sequence of bits: ";
cin >> seq;
for (unsigned int i = 0; i < seq.size(); i++)
{
if ( seq[i]==1)
{
d = d + pow(2,i);
cout << d << "n";
}
}
//cout << key << "n";
cout << "Enter p: ";
cin >> p;
cout << "Enter q: ";
cin >> q;
cout << "Enter m: ";
cin >> m;
n = p*q;
f = (p-1)*(q-1);
for ( int k = 0; t < 1; k++)
{
if ((1+k*f)%d==0)
{
t = 2;
e = (1+k*f)/d;
}
}
cout << "E is: " << e << "n";
c = pow(m,e)%n;
cout << "C is: " << c << "n";
cin.get();
return 0;
}
函数pow声明为
double pow (double base, double exponent)
相关文章:
- 将双精度变量设置为另一个变量的值
- 我在C++中使用提升哈希函数将 3 个双精度组合成一个面临冲突的哈希
- 为什么 Clang std::ostream 写一个 std::istream 无法读取的双精度?
- Fmod 函数清楚地输出一个预期的双精度值,但 if(fmod == 预期的双精度值)的计算结果不是 true
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 字符串和双精度的麻烦,等值后再得到一个数字
- 我想读取文本文件中的所有内容(但文本文件中只有一个双精度值),转换为双精度值并返回值
- 在编译时将整数和分数部分宏组合成一个新的宏或双精度
- 将 32 位浮点数和不强制转换的 32 位整数与双精度进行比较,当其中一个值可能太大而无法完全适合另一种类型时
- 有没有办法构造一个 constexpr 函数来获取双精度的位表示
- 如何使用 c++ 将多个变量存储在一个变量中?例如,双精度 x,y,z 包含在可变点 p 中
- 您能否给我一个 16 位(或更多)十进制数,该十进制数仅在第 15 位正确转换为双精度浮点圆
- C++ 传递一个 int,错误地说这是一个双精度
- 如何验证字符串是有效的双精度(即使它有一个点)
- 在C++中获取大于或等于一个双精度的最小浮点值(以及小于或等于一的最大浮点值)
- 当我声明一个大小为500 x 500的双精度矩阵时,为什么会出现堆栈溢出
- 在字符串(C++)的末尾添加一个双精度
- C++试图返回一个双精度数组的字符串(有点)
- 从文件中读取长双精度,然后写入另一个文件
- 将所有双精度转换为整数以获得更好的性能,这只是一个谣言