计算机编程基础

1.十进制转二进制:

(1)明确问题。举个例子,我们现在是要将一个十进制数字15610转换成二进制数字。先将这个十进制数作为被除数写在一个倒着的“长除法”的符号里。把目标数系的基数(在这里二进制是“2”)作为除数写在这个除法符号的外面。

  • 用这个方法将计算过程可视化会更方便理解,因为整个计算过程只需将数字一直除以2。
  • 为了防止转换前后发生混淆,建议将数系的基数写作每个数字的脚注形式。在本例中,十进制数字的脚注为10,二进制数字的脚注为2。
(2)进行除法运算。把结果的整数部分(商数)写在长除法符号的下面,然后把它的余数(0 或 1)写在被除数的右边。[2]
  • 我们现在是以2为除数,因此得出的商为偶数,则余数为0;如果得出商为奇数,则余数记为1。
(3)一直往下继续除,直到商为0为止。把每一个新的商数除以二,然后把余数写在被除数的右边。直到商数为0为止。

(4)写出新的二进制数字。从最下面的余数开始,按顺序读到最上面。本例中,你会得到10011100。这就是十进制数字156的二进制形式。或者,我们可以以脚注等式的形式表达,即:15610 = 100111002明确问题。举个例子,我们现在是要将一个十进制数字15610转换成二进制数字。先将这个十进制数作为被除数写在一个倒着的“长除法”的符号里。把目标数系的基数(在这里二进制是“2”)作为除数写在这个除法符号的外面。

一直往下继续除,直到商为0为止。把每一个新的商数除以二,然后把余数写在被除数的右边。直到商数为0为止。

十进制转其他进制方法一样。8进制就除以8,16进制就除以16。

2. ASCII 码表中,其中 94 个可打印字符也称为图形字符,从小到大的顺序为阿拉伯数字、大写字母、小写字母。

3.sizeof和strlen()都可以用来统计字符串所占用的大小,二者的区别为:

(1) sizeof是运算符,而strlen是函数;

(2)strlen必须以char *作为参数,且必须以'\0'结尾;而sizeof()可以用于其他类型;

(3)strlen统计字符串中字符的长度,不包括结尾的'\0';

(4)数组做sizeof的参数不退化,而传递给strlen就变为指针

4.物理结构即存储结构,在不同的计算机上使用都会产生不同的结果,因此与所使用的计算机有关。而逻辑结构是通用的,在任何不同的计算机上所进行的运算操作都是统一的。

5.重载的概念是:方法名称相同,参数个数、次序、类型不同,因此重载对返回值没有要求,可以相同,也可以不同。但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载。另外main函数不能重载。

6.在 rflags 寄存器里的下面三个标志位记录溢出, 符号和进位状态:

  • OF(Overflow Flag)
  • SF(Sign Flag)
  • CF(Carry Flag)

溢出总结

  1. 两个正数相加,如果结果为负数,就产生了溢出。
  2. 两个负数相加,如果结果为正数,就产生了溢出。
  3. 不同符号的两个数相加,不会产生溢出。

7.赋值语句作为条件时,取决于等号左边的变量,若为0则为FALSE。

8.

使用下列二位图形变换矩阵将产生的变换结果为

 


或者直接用一个点来测试一下便知,比如点(1,2,3),乘以矩阵后,(1,2,3)*r=(-1,2,3),只有x坐标变了,说明是关于y轴或者yoz面对称的。此题是二维图形,所以就是关于y轴对称的。

9.对有 n 个记录的表作快速排序,在最坏情况,算法的时间复杂度是O(n^2)


10.
超流水线技术可以提高处理器的时钟频率,
超流水线技术可以使一条指令的执行时间更短
使用超流水线技术,在原来的时钟周期内,功能部件被使用的次数不变

11.线性表的顺序存储结构是一种随机存取的存储结构.

猜你喜欢

转载自blog.csdn.net/qq_33772192/article/details/79673280
今日推荐