手动写入int和float

#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",*((float*)uc));
    return 0;
} 

图片说明

全部评论

相关推荐

运营3年修炼中接简历辅导:你的科研项目经历里,只写了你的动作,没有写你的思考和成果,不要只写使用什么进行了什么,这等于罗列你的任务,简历是为了突出你的优秀,你在什么样的任务背景下,克服了什么样的困难,针对性地做了哪些事情,最后达成了什么成果(用数据体现你的成果和效率)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务