第2章 信息的表示和处理
2018-03-26 22:41
288 查看
大端法、小端法
数据在计算机中每一字节是怎么存储的。大端法的表示方法与我们手写一致,左边是低地址,右边是高低址;小端法正好相反。也可以这么记,大端法数据的高位在低地址,数据的低位在高字节。下面代码判断机器的大小端。
void is_little_endian() {
int num=1;
char *pc=(char*)
if(*pc==0)
printf("big endian\n");
else
printf("little endian\n");
}无符号数与有符号之间的转换
就记住一条:底层的二进制位保持不变。另外,当有符号数要转换成一个占的字节数更大的无符号数时,有符号数字先进行符号扩展,再转换成无符号数。在计算有符号数的时候,其绝对值等于其反码加1。
整数运算
注意运算结果溢出。归根结底,还是运算结果底层的位保持不变,只是发生了截断。
浮点数在计算机中如何存储
对于单精度浮点数来说(float),其字长为32位。与有符号数一样,第一位代表符号为。接下来8位代表阶码,剩下的23位代表尾数。根据阶码是否全0,全1,非全0非全1分为三种情况。全0是非规格化的值,全1表示无穷大或者NaN,剩下的就是规格化的值。书上都有说,我们这里着重讨论一下浮点数的有效位数问题。有效位数的意思就是可以准确的把一个十进制数字表示出来。单精度下尾数有23位,且2^23=8388608,说明有效数字最多7位,那么我们可以用单精度表示的数字小数位在6~7位;双精度同理,15~16位。
数据在计算机中每一字节是怎么存储的。大端法的表示方法与我们手写一致,左边是低地址,右边是高低址;小端法正好相反。也可以这么记,大端法数据的高位在低地址,数据的低位在高字节。下面代码判断机器的大小端。
void is_little_endian() {
int num=1;
char *pc=(char*)
if(*pc==0)
printf("big endian\n");
else
printf("little endian\n");
}无符号数与有符号之间的转换
就记住一条:底层的二进制位保持不变。另外,当有符号数要转换成一个占的字节数更大的无符号数时,有符号数字先进行符号扩展,再转换成无符号数。在计算有符号数的时候,其绝对值等于其反码加1。
整数运算
注意运算结果溢出。归根结底,还是运算结果底层的位保持不变,只是发生了截断。
浮点数在计算机中如何存储
对于单精度浮点数来说(float),其字长为32位。与有符号数一样,第一位代表符号为。接下来8位代表阶码,剩下的23位代表尾数。根据阶码是否全0,全1,非全0非全1分为三种情况。全0是非规格化的值,全1表示无穷大或者NaN,剩下的就是规格化的值。书上都有说,我们这里着重讨论一下浮点数的有效位数问题。有效位数的意思就是可以准确的把一个十进制数字表示出来。单精度下尾数有23位,且2^23=8388608,说明有效数字最多7位,那么我们可以用单精度表示的数字小数位在6~7位;双精度同理,15~16位。
相关文章推荐
- 第2章 信息的表示和处理
- 《深入理解计算机系统》 第2章 信息的表示和处理
- 笔记:第2章 信息的表示和处理
- 深入理解计算机系统 第2章 信息的表示和处理
- 计算机中信息的表示和处理
- 信息的表示和处理
- Chapter 2 信息的表示和处理
- CSAPP -- 信息的表示和处理
- CSI-III:信息的表示与处理-数值陷阱(二)
- 一种基于信息状态的 信息表示、存储和处理系统
- 信息的表示和处理(3)
- 信息的表示和处理(待补充)
- 【计算机系统学习-信息表示和处理】【二、整数表示】
- 读书笔记——信息的表示和处理
- CSAPP阅读笔记——第二章:信息的表示和处理
- 信息的表示和处理--信息存储
- [CSAPP笔记][第二章信息的表示和处理]
- 深入理解计算机系统--信息表示和处理
- 第二章 信息的表示和处理
- 深入理解计算机系统--信息的表示和处理