- 博客(5)
- 收藏
- 关注
原创 学习笔记 变长栈帧
/*支持变长栈帧一般的代码在编译的时候编译器事先就能知道需要为栈帧分配多大的空间,但有的时候我们需要用到动态分配,即在运行的时候才知道需要多大的空间*/#includeusing namespace std;long vframe(long n, long idx, long *q){ long i; long *p[n]; p[0] = &i; for (i
2017-09-12 19:40:12 1677 1
原创 学习笔记 浮点数的表示
一:二进制定点法 如:0.011 那么它表示1/8+2/8=3/8; 可以看出它并不能精确地表示每一个小数值,在不提高位的情况下只能尽量选择最接近的值。比如1/5,十进制可以表示为0.2,但2进制不能精确表示。二:IEEE浮点法:公式:v=(-1)^s*M*(2^E);v表示数值。s表示符号,s=0时为正
2017-09-03 19:15:09 372
原创 学习笔记 整数运算 乘以常数
在很多机器上,执行常数会非常慢,需要更多的时钟周期,但是执行其他运算(加、减、与、或、非、异或、移位)只需要一个时钟周期,因此编译器会使用加、减、移位的组合来替代乘法运算。1.乘以2的幂:例如 11 *4=44; 则11=01011;44=101100; 4=2^2; 可以看出11*4等价于将11左移2位;
2017-09-02 20:23:10 871
原创 正溢出 和 负溢出
如果位数 为w 的两个数x,y;且在系统中为补码表示,如果: -2^(w-1) x+y x+y>=2^(w-1)发生正溢出 结果为x+y-2^w 推导过程:对于一个w位,他所能表达值得范围: 比如 w=4: 0 0 0 0
2017-09-01 20:54:29 10870
原创 无符号 运算中的细节问题
#includeusing namespace std;int main(){unsigned a=0;int b=1;coutcout}
2017-09-01 19:42:36 288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人