您的位置:首页 > 其它

第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位。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: