十二天深刻理解计算机系统(二)

信息的表示和处理

理解字节序(大端、小端)

 能够参考博客大小端介绍以及判断html

位级运算

一个有趣的应用使用异或实现两个元素之间的交换spa

void inplace_swap(int *x, int *y)htm

{blog

*y=*x^*y;get

*x=*x^*y;编译器

*y=*x^*y;博客

}io

逻辑运算符和位级运算符的一个重要区别

若是第一个参数求值就可以肯定表达式的结果,那么逻辑运算符就不会对第二个参数求值。编译

逻辑右移和算术右移的区别

例如[xn-1...x0],逻辑右移k位的结果为[0..0,xn-1..xk],算术右移k位的结果为[xn-1,xn-1..xn-1..xk]C语言中无符号的右移必定是逻辑的,有符号几乎全部的编译器/机器组合都对有符号数据使用算术右移。class

5 C语言有符号和无符号数

-1<0u,你们猜测这个的条件是什么,是falseC语言隐式强制把有符号数转换为无符号数。

总结

数的表示,应该注意一些隐式转换,数据转换之间要注意。

相关文章
相关标签/搜索