小数用二进制表示

小数用二进制表示

步骤

  1. 将该数字乘以2,取出整数部分作为二进制表示的第1位
  2. 再将小数部分乘以2,将得到的整数部分作为二进制表示的第2位
  3. 循环进行,如果小数部分为0,则结束
  4. 小数部分出现循环,无法停止,则在误差允许范围内,用有限位近似表示
#include <stdio.h>
#define STAGE_N 20
int main(){
    
    
	double num;
	printf("decimal num: ");
	scanf("%lf",&num);
	char binary[STAGE_N]={
    
    0};
	int i,j;
	double temp = num;
	
	for(i=0;i<STAGE_N;i++){
    
    
		temp = temp*2;
		if(temp >= 1) {
    
    
			binary[i] = 1;
			temp -= 1;
			if(temp < 0.000001) break;
		}
	}
	
	int n = (i<STAGE_N)?i:i-1;
	printf("0.");
	for(j=0;j<=n;j++){
    
    
		printf("%d",binary[j]);
	}
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/first_bug/article/details/129628417