本博文源于笔者正在学习的c语言如何利用位运算输出浮点数数据类型,浮点数在其底部也是用二进制来处理,又考虑到他是低位在前高位在后的原理,因此进行了这样的代码编写
问题浮现
想要用c语言的位运算输出浮点数
问题源码
#include<stdio.h>
#include<stdlib.h>
int main() {float f1;scanf_s("%f", &f1);//初始化浮点数据类型unsigned char* p = (unsigned char*)&f1;//进行地址转换,共享内存for (int i = 3; i >= 0; i--) {//高位在后低位在前unsigned char chs = p[i];for (int j = 7; j >= 0; j--) {if (chs & (1 << j)) {printf("1");}else {printf("0");}}printf(" ");}system("pause");return 0;
}