笔记三 第2章总结及感悟
2016-09-15 22:05
253 查看
前几天太忙。没来得及继续看书。今天趁放假,把第2章看完了。除浮点数知道存储格式,略过原理推导外,其它部分都认真读了。
第二章的核心:数的表示与数的运算。
需要注意下列几类问题:
数的表示
数的表示,按数的类型划分:整数和浮点数。按定义规则,分为有符号数和无符号数。共4个大类。
其中,浮点,可以理解float以及double在内存单元中的定义情况,以及小数如何计算。然后+0.0与-0.0的差别,以及浮点数的表示。要明白,浮点0.0和整数0在计算机中的表示是不一样的。
浮点的三类情况,规格化值,非规格化值,特殊值。以及这三类值的位的表示。
主要的描述,还是在整数上,由于在c语言中,ASCII字符和整数是一类表示方法,只是范围不同,所以弄清了整数就好。
笔记二 习题2.26有符号和无符号引出的问题
描述了有符号及无符号的运算产生的问题。
还涉及到另一类的问题,就是数的越界问题。比如你不清楚传入参数是什么样的数的时候,最好去判断一下,如果超出范围,直接报错。
就和练习题2。37那样,干脆一下,对大家都好。
其中可借鉴的代码如下.假定我们不清楚数据a的关型.假设在32位的机器上,这样下面那种类型是有差别的。
对于数据类型,还有数据符号问题,要慎之又慎。
数的运算
嵌入式开发中,位运算用的实在太多了。然后对于寄存器操作,都用无符号数,这是稍微偏于更底层的运算。在这一层编码时,尽量用位运算解决所有问题,包括位操作,还有一些乘除法的位运算的转化。其中,只有特定的除法可以用位运算。
位运算上层,就是通用的运算。乘除法,让编译器去优化了。但是除法还是最耗时的,特别在嵌入式系统上,尽量少用除法。
第二章的核心:数的表示与数的运算。
需要注意下列几类问题:
数的表示
数的表示,按数的类型划分:整数和浮点数。按定义规则,分为有符号数和无符号数。共4个大类。
其中,浮点,可以理解float以及double在内存单元中的定义情况,以及小数如何计算。然后+0.0与-0.0的差别,以及浮点数的表示。要明白,浮点0.0和整数0在计算机中的表示是不一样的。
浮点的三类情况,规格化值,非规格化值,特殊值。以及这三类值的位的表示。
主要的描述,还是在整数上,由于在c语言中,ASCII字符和整数是一类表示方法,只是范围不同,所以弄清了整数就好。
笔记二 习题2.26有符号和无符号引出的问题
描述了有符号及无符号的运算产生的问题。
还涉及到另一类的问题,就是数的越界问题。比如你不清楚传入参数是什么样的数的时候,最好去判断一下,如果超出范围,直接报错。
就和练习题2。37那样,干脆一下,对大家都好。
其中可借鉴的代码如下.假定我们不清楚数据a的关型.假设在32位的机器上,这样下面那种类型是有差别的。
unsigned long long val_1 = (unsigned long long)a; unsigned long val_2 = (unsigned long)a; if(val_1 != val_2) /*overflow*/ else ...
对于数据类型,还有数据符号问题,要慎之又慎。
数的运算
嵌入式开发中,位运算用的实在太多了。然后对于寄存器操作,都用无符号数,这是稍微偏于更底层的运算。在这一层编码时,尽量用位运算解决所有问题,包括位操作,还有一些乘除法的位运算的转化。其中,只有特定的除法可以用位运算。
位运算上层,就是通用的运算。乘除法,让编译器去优化了。但是除法还是最耗时的,特别在嵌入式系统上,尽量少用除法。
相关文章推荐
- 文献管理与信息分析 MOOC 课程 - 笔记与感悟(第2章)
- [Effective JavaScript 笔记]第2章:变量作用域--个人总结
- 山东中医药大学计算机科学与技术2班王鑫童数据结构第2章笔记总结
- 十五年老股民炒股15年,总结感悟至深的八十一条炒股笔记
- 笔记:高精代码关键语句总结
- 项目总结中的一些感悟
- qmail总结笔记(1)
- 几点笔记+一点感悟
- 个人思科学习笔记总结
- 垃圾收集学习笔记(第2章)
- Mcad学习笔记之异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)
- 多线程(3):JT第2章笔记
- qmail总结笔记(3)
- 深浅MFC学习笔记总结-MFC程序的执行过程
- 《教育心理学》吴庆麟版自己看书总结的笔记
- 第2章学习笔记
- qmail总结笔记(2)
- 代码阅读总结之ASP.NET StartKit TimeTracker(数据绑定之困惑笔记)
- thinking in java 第三版 学习笔记(第2章 一切都是对象)
- 国内开源环境的感悟-Spring轮子血案总结