csapp-Lecture1-4

#include "stdio.h"
#include "stdlib.h"

int main(){
    //写入一个整数16
    //32位的int表示为:00000000 00000000 00000000 00010000
    //用unsigned char去模拟
    unsigned char *uc=(unsigned char*)malloc(sizeof(unsigned char)*4); 
    uc[0]=0b00010000;
    uc[1]=0b00000000;
    uc[2]=0b00000000;
    uc[3]=0b00000000;
    printf("%d\n",*((int*)uc));
    //写入一个double
    //32位的float表示 (-1)**S*1.M*2**E
    // 正数 S=0 M=0 E=1 这个数字为2 
    //32 float IEEE编码为 01000000 00000000 00000000 00000000
    uc[0]=0b00000000;
    uc[1]=0b00000000;
    uc[2]=0b00000000;
    uc[3]=0b01000000;
    printf("%f\n",*((float*)uc));
    //float表示正无穷, 01111111 10000000 00000000 00000000
    uc[0]=0b00000000;
    uc[1]=0b00000000;
    uc[2]=0b10000000;
    uc[3]=0b01111111;
    printf("%f\n",*((float*)uc));
    //float表示NAN 01111111 11111111 00000000 00000000
    uc[0]=0b00000000;
    uc[1]=0b00000000;
    uc[2]=0b11111111;
    uc[3]=0b01111111;
    printf("%f",*((float*)uc));
    //浮点数不具有结合律,表现在当一个很大的数去加减一个很小的数的时候
    print("%f\n",(3.14+1e10)-1e100);
    print("%f\n",3.14+(1e10-1e100));
    return 0;
} 

图片说明

全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务