十进制转二进制
整数部分计算:
int a = 10;
while (a > 0)
{
printf("%d", a % 2);
a = a / 2;
}
小数部分计算
double a = 0.625;
// 乘2取整数部分
int t = 0;
while (a > 0.0)
{
a = a * 2;
t = a;
if (a > 1.0)
{
a = a - 1;
}
}
二进制转十进制
整数部分:
二进制 1011
1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 11
小数部分:
二进制 0.101
1*2^-1 + 0*2^-2 + 1*2^-3 = 0.625