信息的表示与处理-小结
来源:互联网 发布:世界上首例网络攻击 编辑:程序博客网 时间:2024/06/06 03:35
1.C语言的移位运算:机器一般支持两种形式的右移,逻辑右移与算术右移,逻辑右移在左端补0,算术右移在左端补最高有效位的值。 如x[xn-1,xn-2,…x1,x0]。x>>k,右移k位得到x[0,0…,xn-1,…xk](逻辑右移) 和x[xn-1,…,xn-2,…xk](算术右移)。对于无符号数据,右移必须是逻辑的;对于有符号数据,右移可逻辑可算术,但机器/编译器一般使用算术右移。而JAVA中对右移有明确的定义,x>>k会对x做算术右移,x>>>k会对x做逻辑右移。
2.C语言在执行一个运算时,如果一个运算数时有符号的,另一个数时无符号的,那么将隐式的将有符号数转为无符号数。所以在进行比较运算时会导致非直观的结果,如-1<0U,会返回false。
3.从一个数据大小到另一个数据大小的转换,以及从无符号到有符号的转换的顺序会影响到一个程序的行为。例如C语言中,usigned(short sx)是先将sx转为int再转为unsigned。不同的顺序是会导致不同结果的。如-1从short到uint_32,前者会得到2^32-1,后者会得到2^16-1。
2002年写FreeBSD开源操作系统的程序员发现一个bug,这个bug就是由无符号与有符号数之间的转换引起的,参数的类型不一致。
JAVA中只使用有符号数。 但无符号数是非常有用的,比如自然地址就是无符号的。
4.补码中有个特殊的数,如int_32的范围是2^-31~(2^31-1)。这个数域不是对称的,2^-31这个数的加法逆元规定是其本身,因为2^-31+2^-31它的位表示得到的结果是0。这个情况不考虑的话,也会出现bug。
- 信息的表示与处理-小结
- 信息的表示与处理
- 计算机中信息的表示与处理
- 计算机中信息的表示与处理
- 计算机中信息的表示与处理
- ch2 信息的表示与处理
- [深入理解计算机系统]第二章-信息的表示与处理
- CSI-II:信息的表示与处理-数值陷阱(一)
- CSI-III:信息的表示与处理-数值陷阱(二)
- 漫谈计算机基础之信息的处理与表示(1)
- 信息的表示和处理
- 信息的表示和处理
- 信息的表示和处理
- 信息的表示和处理
- 信息的表示和处理
- 信息的表示和处理
- 信息的表示和处理
- 《深入理解计算机系统》笔记一:信息的表示与处理(2)——整数的表示
- lua播放帧动画
- 在线支付功能
- sql%rowcount
- hdu-- 计算机学院大学生程序设计竞赛(2015’11)
- 新Java运动:测试驱动开发3---用户注册2
- 信息的表示与处理-小结
- Hive_2. 数据类型
- java中的异常类型
- STM32学习第六天---稍微了解了下下端口复用和重映像
- Android编程中求两个GPS坐标的距离
- 4个你需要知道的 Asset Catalog 的秘密
- 初学JSON
- LVS DR模式负载均衡配置
- linux-文件系统管理10-关于存储介质的那些事儿