我需要从pow(a,b)整数中得到结果(a和b都是整数).目前(int) pow( (double)a, (double)b)包含的计算是错误的.也许有人可以帮助一个函数,用整数执行pow(a,b)并返回一个整数?
但这里有一个奇怪的部分:我使用Geany(和g ++/gcc编译器)在Linux中创建了我的脚本,并且只pow(a,b)编译了脚本并且工作正常.但在大学里我有Dev-C++(和MS Windows).在Dev-C++中,脚本没有使用错误[Warning] converting toint' 编译double'
我需要在Windows(和Mingw编译器)下使这个scrpit工作.
提前致谢,
-skazhy
是否有一种简单的方法,而不必使用java库来连接两个int?也许数学?
说我有9和10,然后我希望它是910,或224和225然后我希望它是224225.
嗨,我想整合4个整数一个整数.我使用了这里找到的concatinate函数:
我的代码:
unsigned concatenate(unsigned x, unsigned y) {
unsigned pow = 10;
while(y >= pow)
pow *= 10;
return x * pow + y;
}
void stringtoint(){
struct router *ptr;
ptr=start;
while(ptr!=NULL){
int a;
int b;
int c;
int d;
sscanf(ptr->ip, "%d.%d.%d.%d", &a, &b, &c, &d);
int num1 = concatenate(a,b);
int num2 = concatenate(c,d);
int num3 = concatenate(num1,num2);
printf("%d\n",num3);
ptr=ptr->next;
};
}
Run Code Online (Sandbox Code Playgroud)
问题:
我正在处理IP地址编号,例如198.32.141.140我将它们分解为4个整数并将它们连接起来形成 19832141140,但是我的连接函数正在对较大的数字进行数学运算,如198.32.141.140(变) - > -1642695340
但它连接的是小数字的IP,例如164.78.104.1变得164781041(这是正确的)
我应该怎么解决这个问题,基本上我试图让IP例如串 …
我想只使用位操作来连接两个整数,因为我需要尽可能多的效率.有各种答案可用,但它们不够快我想要的是只使用左移位等操作的实现.请指导我怎么做
例
int x=32;
int y=12;
int result=3212;
Run Code Online (Sandbox Code Playgroud)
我正在和FPGA实现AES.我需要在我的系统上使用它来减少某些任务的时间消耗
c algorithm bit-manipulation concatenation micro-optimization