小编Kaw*_*iKx的帖子

装配中的算术运算

我正在学习汇编语言.我发现汇编中的算术可以是有符号或无符号的.这两种算法的规则都不同,我发现程序员很难决定应用哪些规则.所以程序员应事先知道算术是否涉及负数.如果是,则应使用带符号的算术规则,否则无符号算术将更简单易行.我发现无符号算术的主要问题是"如果结果大于其存储区域会怎么样?".通过使用大于所需的数据存储区域可以轻松解决这个问题.但这会消耗额外的字节,数据段的大小会增加.如果代码的大小没有问题,我们不能自由使用这种技术吗?

math assembly

2
推荐指数
1
解决办法
1557
查看次数

在fedora上安装SDL

我安装了FEDORA和SDL并希望在编译时用C编程图形,我得到了很多未定义的引用SDL_MapRGB,SDL_Init等我搜索了文件系统SDL.dll丢失了..

如何解决这个问题呢?

sdl fedora

2
推荐指数
1
解决办法
2万
查看次数

bash不显示126以上的扩展ASCII字符

我写了一个小的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的东西,它显示相同的问号.

为什么这样以及如何纠正呢?

bash ascii

2
推荐指数
1
解决办法
5774
查看次数

通过加法模拟乘法的算法

如何设计一个算法来模拟乘法加法.输入两个整数.它们可能是零,正面或负面..

algorithm multiplication addition

1
推荐指数
1
解决办法
8618
查看次数

算法效率 - 如果需要更多比较,部分展开循环是否有效?

如何判断在迭代中放入两个额外的赋值是否昂贵,或者设置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测试,我们不会失去减少分配数量的收益吗?

algorithm fibonacci micro-optimization

1
推荐指数
1
解决办法
591
查看次数

在Fedora 16上安装X11

我希望安装X11开发库.我有Fedora 16作为操作系统.我发现这个链接提供X11R7.6的源代码. http://www.x.org/releases/X11R7.6/src/

你能告诉接下来的几个步骤吗?

提前致谢

x11 fedora

1
推荐指数
1
解决办法
1万
查看次数

openGL实现操作系统是否具体?

我已经理解API是两个代码之间的粘合剂.它们以库的函数的形式实现,最终在运行时期间在计算机上编译和需要.

那么这不是说它们的实现是特定于操作系统的吗?

我特别想知道opengl的实现是否特定于操作系统?我正在使用fedora 19并安装了Mesa库.

opengl api

1
推荐指数
1
解决办法
143
查看次数

如何防止无限循环写入文件

这是用于创建文件或目录的副本的代码,在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)

c

1
推荐指数
1
解决办法
256
查看次数

如何阻止此代码挂在错误的输入?

我正在从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)

c

0
推荐指数
1
解决办法
207
查看次数

Java中的char算术

我编写了下面的代码,将小写转换为大写,将大写转换为小写,但它运行不正常.此代码触发以下错误:

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)

java

0
推荐指数
1
解决办法
296
查看次数