如何获取float变量在内存中的二进制数据?

#include<stdio.h>

void printBinaryDigit(float *pf)
{
	int n = *(int *)pf;
	int sizeOfBits = sizeof(int) * 8;
	int i = sizeOfBits - 1;
	for(i = sizeOfBits - 1; i >= 0; i--)
	{
		if(n & (1 << i))
		{
			printf("1");
		}
		else
		{
			printf("0");
		}
	}

	printf("\n");
}

int main()
{
	float f = -1.0;
	for(f = -1.0; f < 1.0; f += (float)0.1)
	{
		printf("%f--->", f);
		printBinaryDigit(&f);
	}

	return 0;
}

       结果:

-1.000000--->10111111100000000000000000000000
-0.900000--->10111111011001100110011001100110
-0.800000--->10111111010011001100110011001100
-0.700000--->10111111001100110011001100110010
-0.600000--->10111111000110011001100110011000
-0.500000--->10111110111111111111111111111101
-0.400000--->10111110110011001100110011001010
-0.300000--->10111110100110011001100110010111
-0.200000--->10111110010011001100110011001000
-0.100000--->10111101110011001100110011000011
0.000000--->00110011101000000000000000000000
0.100000--->00111101110011001100110011010111
0.200000--->00111110010011001100110011010010
0.300000--->00111110100110011001100110011100
0.400000--->00111110110011001100110011001111
0.500000--->00111111000000000000000000000001
0.600000--->00111111000110011001100110011011
0.700000--->00111111001100110011001100110101
0.800000--->00111111010011001100110011001111
0.900000--->00111111011001100110011001101001

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值