我不是受过训练的计算机科学家,所以我不知道编译等的全部或大部分细节,但我一直认为我的c程序被编译成机器代码,我可以用gcc的-S标志来查看。
我还认为,我的代码越接近机器代码,计算机执行它的速度就越快。所以我决定测试这个。
我编写了两个测试文件来计算一个简单的算术问题。
// test1.c
int main(int argc, char* argv[]){
int x = 4243;
int y = 3235;
int z = 613*x + 725*y;
return 0;
}
// test2.c
int main(int argc, char* arg
我需要在以下链接中找到的问题3的帮助
p = 15000
r = float(input("Enter interest rate (in percentage): "))
n = float(input("Enter loan period (in years): "))
c = p(1+r/100)**n
print()
print(f" At {r}% interest, you need to pay ${c} after {n} years")
我不知道为什么它告诉我我有一个不可调用的'int‘,或者我如何才能将回报四舍五入到2
我用Java语言编写了一个程序来使用带零填充的右移位(>>>)操作符。对于下面的程序来说,一切都很好。
class First
{
public static void main(String[] args)
{
int b = -1;
int c = b>>>2;
System.out.println(b);
System.out.println(c);
}
}
输出为:
-1
10
我想问一些简单的问题。
我提供了一个非常简单的计算例子,我得到的结果与我的预期不同。有人能解释我哪一步做错了吗?
public static void main(String[] args) {
int x =1;
int y = 101;
int a = 2;
int z = ++y + y * a << 3 *2 * ++x + (x+=2);
/*
Step 1 int z = ++y + y * a << 3 *2 * ++x + (3);
Step 2
据说在嵌入式C++中,模运算符"%“和除法运算符"/”的效率很低。
我如何实现下面的表达式:
a = b % c;
我知道这可以使用以下逻辑来实现:
a = b - c;
while (a >= c) {
a = a - c;
}
但我的问题是,与%运算符相比,这段涉及while循环的代码是否足够有效?
谢谢,柯尔蒂
我正在尝试优化除法和模运算,以提高C代码的整体性能。
我有过
UINT32 quo = num / 520 ;
UINT32 rem = num % 520 ;
大多数博客都提到了优化2个操作的能力,比如
num % (2^i) = num & (2^i -1 ).
我的代码中的num将是一个相当大的数字。
请为上面的代码推荐一种替代方法。
我收到以下编译错误:
prog.c:13:5:错误:被调用的对象不是函数或函数指针a=250(n-1)+192;
#include <stdio.h>
int main(){
long long n,a;
int t;
scanf("%d",&t);
while(t--){
scanf("%lld",&n);
a=250(n-1)+192;
printf("%lld\n",a);
}
}