c++使用IEEE 754将浮点数转换为基数10
C++ converting floating point to base 10 using IEEE 754
我能够显示二进制数字的浮点表示,包括符号、指数和分数。但是如果我想把它转换成以10为基数的符号,指数和分数,我该怎么做呢?一个例子可以像浮点数表示12:
Sign Bit = 0
指数= 130
分数= 4194304
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
using namespace std;
void binary(int n, int i)
{
int k;
for (i--; i >= 0; i--)
{
k = n >> i;
if (k & 1)
printf("1");
else
printf("0");
}
}
typedef union
{
float f;
struct
{
unsigned int mantissa : 23;
unsigned int exponent : 8;
unsigned int sign : 1;
} field;
} myfloat;
int main()
{
myfloat var;
printf("Enter any float number: ");
scanf_s("%f", &var.f);
cout << "SignBit = ";
printf("%d ", var.field.sign);
cout << endl;
cout << "Exponent = ";
binary(var.field.exponent, 8);
printf(" ");
cout << endl;
cout << "Fraction = ";
binary(var.field.mantissa, 23);
printf("n");
return 0;
}
直接打印出来。
cout << var.field.mantissa << ' ' << var.field.exponent << ' ' << var.field.sign << 'n';
相关文章:
- 将浮点数转换为无符号字符数组并打印出来
- 如何将时间字符串 (M:SS) 转换为浮点数
- 如何将浮点数(*)[6]转换为浮点**类型?
- 如何将浮点数转换为uint8_t?
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 如何在C++(Arduino)中将浮点数组转换为字节数组
- 为什么C++在将浮点数转换为字符时没有显示缩小转换错误?
- 将(N 个字节)无符号字符指针转换为浮点数和双 C++
- C++ - 转换标准::浮点数组的字符串
- 为什么我不能在不进行任何转换的情况下将浮点数放入任何类型的 ptr 中?
- Zedboard zynq-7000 Opencl 浮点数从类型 'double*' 强制转换为类型 'double' 无效
- 将浮点数转换为字符串时如何加快此代码的速度?
- 我可以安全地将浮点数的结构转换为浮点数组吗C++?
- 如何将带有浮点数的字符串转换为十进制?
- 浮点到整数转换出错(即使浮点数已经是整数)
- C/C++ - 将浮点数转换为字节数组,以便字节保持排序
- 将整数的二进制数据转换为浮点数
- 使用 avr-gcc 隐式转换为浮点数:uint8_t vs. uint16_t
- 将浮点数向量转换为十六进制/二进制字符串
- 精确且无公差地将浮点数转换为字符串