基础题:
1.数据在计算机上的存储形式是什么?
答:数据和程序是以二进制形式存放的.
2.补码是什么?
答:数值X的补码记作[x]补,如果机器字长为n,则最高位是符号位,0表示正号,1表示负号,正数的补码与原码反码都相同,负数的补码则等于其反码的末尾加1。数值0的补码表示有唯一的编码:[+0]补=0000 0000 ,[-0]补=0000 0000.
3.0X81+0X82的结果
答:0x03
4.浮点数在计算机中如何存储?
答:对于float型数据,其长度是4个字节,右边23位用来表示小数点后面的数字,中间8位用来表示e,左边一位用来表示正负。
对于double型数据,其长度是8个字节,右边52位用来表示小数点后面的数字.中间11位表示e,左边一位用来表示正负。如下图:
指数偏移量=2^(k-1),k为指数位个数。
IEEE 754规定,在计算机内部保存M时,默认这个数的第一位总是1,因此可以被舍去,只保存后面的xxxxxx部分,这样相当于可以多储存一位。
5.堆栈的区别?
答: 1、栈由系统自动分配,而堆是人为申请开辟;
2、栈获得的空间较小,而堆获得的空间较大;
3、栈由系统自动分配,速度较快,而堆一般速度比较慢;
4、栈是连续的空间,而堆是不连续的空间。
6.结构体w1,w2中y2的偏移地址为多少
struct w { long long y; int x; long long y2; }w; struct w2 { long long y; int x; int y2; }w2;
答:w中为16,w2中为12
结构体会进行内存对齐,先成员数据对齐,然后再整体对齐。
7.快排复杂度为多少?快排的时间复杂度稳定吗?
答: O(nlogn)
不稳定
8.快排可以不用递归实现吗?
答:可以,直接用模拟栈实现。
9.图像渲染方面的知识?
答:不会。
算法题:
1.给你两个01矩阵,让你求第一个矩阵在第二个矩阵的位置?
答:使用hash加速判断
2.文件编译有时候会引用其它文件,给出依赖关系,让你给出一个正确的编译顺序(相当于求拓扑序),并求同时编译的最大个数为多少?
答:第一问输出个拓扑序就好了,第二问不会。