非汇编指令实现 显示 整型,浮点型, 正负数的32位补码

来源:互联网 发布:c语言符号表 编辑:程序博客网 时间:2024/06/06 02:28
/*=========================================编译器:VC6.0 VC8.0函数:void ShowBinary (float num);功能描述:显示 整型 浮点型 正负数的补码=========================================*/#include <iostream>void ShowBinary (float num);int main(){using namespace std;float n;while(1){cout << "输入一个数:\n";cin >> n;ShowBinary(n);}system("pause");return 0;}void ShowBinary (float num){using namespace std;float tem;tem = num;// 保存浮点数int n;// 转换成整型n = (int) tem;int * p;// 指向 符号整型数if (num > 0)// 若num为正数{if (tem - n > 0)p = (int *) &tem;// 若小数部分不为0,指向浮点数的地址elsep = (int *) &n;// 若小数部分为0, 指向整型的地址}else// 若num为负数{if (n - tem > 0)p = (int *) &tem;elsep = (int *) &n;}int nu = *p;int i;int temp[32];for (i = 0; i < 32; i++){temp[i] = nu & 1;nu >>= 1;}for (i = 31; i >= 0; i--){cout << temp[i];if ((i) % 4 == 0)cout << " ";}cout << endl;}