我正在学习汇编语言.我发现汇编中的算术可以是有符号或无符号的.这两种算法的规则都不同,我发现程序员很难决定应用哪些规则.所以程序员应事先知道算术是否涉及负数.如果是,则应使用带符号的算术规则,否则无符号算术将更简单易行.我发现无符号算术的主要问题是"如果结果大于其存储区域会怎么样?".通过使用大于所需的数据存储区域可以轻松解决这个问题.但这会消耗额外的字节,数据段的大小会增加.如果代码的大小没有问题,我们不能自由使用这种技术吗?
我安装了FEDORA和SDL并希望在编译时用C编程图形,我得到了很多未定义的引用SDL_MapRGB,SDL_Init等我搜索了文件系统SDL.dll丢失了..
如何解决这个问题呢?
我写了一个小的c程序来打印对应于值129的扩展ASCII字符
#include<stdio.h>
int main(void)
{
char a = 129;
printf("%c\n",a);
return(0);
}
Run Code Online (Sandbox Code Playgroud)
在bash终端上的unix机器(fedora 16)上编译并运行它.它给出了错误的显示.它在后面显示一个带有白色椭圆形背景的问号.
事实上,如果我把一个=任何超过126的东西,它显示相同的问号.
为什么这样以及如何纠正呢?
如何设计一个算法来模拟乘法加法.输入两个整数.它们可能是零,正面或负面..
如何判断在迭代中放入两个额外的赋值是否昂贵,或者设置if条件来测试另一个东西?在这里我详细说明.问题是生成并打印Fibonacci序列的前n个项,其中n> = 1.我在C中的工具是:
#include<stdio.h>
void main()
{
int x=0,y=1,output=0,l,n;
printf("Enter the number of terms you need of Fibonacci Sequence ? ");
scanf("%d",&n);
printf("\n");
for (l=1;l<=n;l++)
{
output=output+x;
x=y;
y=output;
printf("%d ",output);
}
}
Run Code Online (Sandbox Code Playgroud)
但是"如何通过计算机解决它"这本书的作者说这是低效的,因为它对生成的单个斐波纳契数使用了两个额外的赋值.他建议:
a=0
b=1
loop:
print a,b
a=a+b
b=a+b
Run Code Online (Sandbox Code Playgroud)
我同意这更有效,因为它始终保持a和b相关,并且一个赋值生成一个数字.但它一次打印或提供两个斐波那契数字.假设问题是生成奇数个术语,我们会做什么?作者建议设置一个测试条件来检查n是否为奇数.通过在每次迭代中添加if测试,我们不会失去减少分配数量的收益吗?
我希望安装X11开发库.我有Fedora 16作为操作系统.我发现这个链接提供X11R7.6的源代码. http://www.x.org/releases/X11R7.6/src/
你能告诉接下来的几个步骤吗?
提前致谢
我已经理解API是两个代码之间的粘合剂.它们以库的函数的形式实现,最终在运行时期间在计算机上编译和需要.
那么这不是说它们的实现是特定于操作系统的吗?
我特别想知道opengl的实现是否特定于操作系统?我正在使用fedora 19并安装了Mesa库.
这是用于创建文件或目录的副本的代码,在fedora 19中使用gcc编译.它运行但它不会停止,我可以看到创建的新文件的大小不断增加.这段代码有什么问题?
#include<fcntl.h>
#include<stdio.h>
#include<unistd.h>
char buffer[2048];
int version = 1;
int main(int argc, char *argv[])
{
void copy (int, int);
int fdold, fdnew;
if (argc != 3)
{
printf("insufficient arguments !!! \n");
return (1);
}
fdold = open(argv[1], O_RDONLY);
if (fdold == -1)
{
printf("cannot open file %s\n",argv[1]);
return (1);
}
fdnew = creat(argv[2],0666);
if (fdnew == -1)
{
printf("cannot create file %s\n",argv[2]);
return (1);
}
copy (fdold, fdnew)
return (0);
}
void copy (int fdold, int fdnew)
{ …Run Code Online (Sandbox Code Playgroud) 我正在从Stephen Kochan的"C编程"中学习C语言.我正在进行第6章练习4,编写一个充当简单累加器计算器的代码.代码如下.只要以正确的方式提供输入,它就可以正常工作.
#include<stdio.h>
int main(void)
{
float num, accum = 0;
char operator;
while(1)
{
printf("Enter the number and the operator ");
scanf("%f %c",&num, &operator);
if (operator == 'E') break;
switch (operator){
case 'S':
accum = num;
printf("= %g\n",accum);
break;
case '+':
accum = accum + num;
printf("= %g\n",accum);
break;
case '-':
accum = accum - num;
printf("= %g\n",accum);
break;
case '*':
accum = accum * num;
printf("= %g\n",accum);
break;
case '/':
accum = accum / num;
printf("= %g\n",accum);
break; …Run Code Online (Sandbox Code Playgroud) 我编写了下面的代码,将小写转换为大写,将大写转换为小写,但它运行不正常.此代码触发以下错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Type mismatch: cannot convert from int to char
Type mismatch: cannot convert from int to char
at learn.Example.main(Example.java:20)
Run Code Online (Sandbox Code Playgroud)
public class Example
{
public static void main(String args[])
throws java.io.IOException
{
char ch;
System.out.println("Enter an alphabet only: ");
do
{
ch = (char) System.in.read();
if (ch>='a' & ch <= 'z')
{
ch= ch-32;
System.out.println(ch);
}
if (ch >='A' & ch <= 'Z')
{
ch = ch + 32;
System.out.println(ch);
}
}
while …Run Code Online (Sandbox Code Playgroud)