Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C แปลงทศนิยมเป็นเลขฐานสอง (Binary Fraction)

ตัวอย่างการแปลงทศนิยมเป็นเลขฐานสอง:

ตัวอย่าง 1 - แปลง 25 เป็นฐานสอง:

  • ขั้นตอน 1: 25 / 2 เหลือ 1, ผลหาร 12
  • ขั้นตอน 2: 12 / 2 เหลือ 0, ผลหาร 6
  • ขั้นตอน 3: 6 / 2 เหลือ 0, ผลหาร 3
  • ขั้นตอน 4: 3 / 2 เหลือ 1, ผลหาร 1
  • ขั้นตอน 5: 1 / 2 เหลือ 1, ผลหาร 0
  • ผลลัพธ์: 11001

ตัวอย่าง 2 - แปลง 0.7 เป็นฐานสอง:

  • ขั้นตอน 1: 0.7 * 2 = 1.4 ส่วนเต็ม = 1
  • ขั้นตอน 2: 0.4 * 2 = 0.8 ส่วนเต็ม = 0
  • ขั้นตอน 3: 0.8 * 2 = 1.6 ส่วนเต็ม = 1
  • ขั้นตอน 4: 0.6 * 2 = 1.2 ส่วนเต็ม = 1
  • ขั้นตอน 5: 0.2 * 2 = 0.4 ส่วนเต็ม = 0
  • ขั้นตอน 6: 0.4 * 2 = 0.8 ส่วนเต็ม = 0
  • ผลลัพธ์: 0.101100

ขั้นตอน 3 - ค่าฐานสองของ 25.7 คือ:

11001 + 0.101100 = 1101.101100

ตัวอย่างโปรแกรม

โปรแกรม C แปลงทศนิยมเป็นเลขฐานสอง:

#include<stdio.h> int main(){    long double fraDecimal,fraBinary,bFractional = 0.0,dFractional,fraFactor=0.1;    long int dIntegral,bIntegral=0;    long int intFactor=1,remainder,temp,i;    printf("Enter any fractional decimal number: ");    scanf("%Lf",&fraDecimal);    dIntegral = fraDecimal;    dFractional = fraDecimal - dIntegral;    while(dIntegral!=0){       remainder=dIntegral%2;       bIntegral=bIntegral+remainder*intFactor;       dIntegral=dIntegral/2;       intFactor=intFactor*10;    }    for(i=1;i<=6;i++){       dFractional = dFractional * 2;       temp = dFractional;       bFractional = bFractional + fraFactor* temp;       if(temp ==1)          dFractional = dFractional - temp;       fraFactor=fraFactor/10;    }    fraBinary = bIntegral + bFractional;    printf("Equivalent binary value: %lf",fraBinary);    return 0; }

ผลลัพธ์

Enter any fractional decimal number: 5.7 Equivalent binary value: 101.101100