1. Question:C program for multiplication of two binary numbers 

    Answer
    #include<stdio.h>
    
    int binaryAddition(int,int);
    
    int main(){
    
        long int binary1,binary2,multiply=0;
        int digit,factor=1;
    
        printf("Enter any first binary number: ");
        scanf("%ld",&binary1);
        printf("Enter any second binary number: ");
        scanf("%ld",&binary2);
    
        while(binary2!=0){
             digit =  binary2 %10;
    
             if(digit ==1){
                     binary1=binary1*factor;
                     multiply = binaryAddition(binary1,multiply);
             }
             else
                 binary1=binary1*factor;
       
             binary2 = binary2/10;
             factor = 10;
        }
    
        printf("Product of two binary numbers: %ld",multiply);
       
       return 0;
    }
    
    int binaryAddition(int binary1,int binary2){
    
        int i=0,remainder = 0,sum[20];
        int binarySum=0;
    
        while(binary1!=0||binary2!=0){
             sum[i++] =  (binary1 %10 + binary2 %10 + remainder ) % 2;
             remainder = (binary1 %10 + binary2 %10 + remainder ) / 2;
             binary1 = binary1/10;
             binary2 = binary2/10;
        }
    
        if(remainder!=0)
             sum[i++] = remainder;
        --i;
        while(i>=0)
             binarySum = binarySum*10 + sum[i--];
    
        return binarySum;
    }
    Sample output: Enter any first binary number: 1101 Enter any second binary number: 11 Product of two binary numbers: 100111






    1. Report
  2. Question:C code for fractional binary to decimal converter 

    Answer
    #include<stdio.h>
    #define MAX 1000
    
    int main(){
    
        long double fraDecimal=0.0,dFractional=0.0 ,fraFactor=0.5;
        long int dIntegral = 0,bIntegral=0,bFractional[MAX];
        long int intFactor=1,remainder,i=0,k=0,flag=0;
        char fraBinary[MAX];
    
        printf("Enter any fractional binary number: ");
        scanf("%s",&fraBinary);
       
        while(fraBinary[i]){
            
             if(fraBinary[i] == '.')
                 flag = 1;
             else if(flag==0)
                 bIntegral = bIntegral * 10 + (fraBinary[i] -48);
             else
                  bFractional[k++] = fraBinary[i] -48;
             i++;
        }
       
        while(bIntegral!=0){
            remainder=bIntegral%10;
            dIntegral= dIntegral+remainder*intFactor;
            intFactor=intFactor*2;
            bIntegral=bIntegral/10;
        }
       
        for(i=0;i<k;i++){
             dFractional  = dFractional  + bFractional[i] * fraFactor;
             fraFactor = fraFactor / 2;
        }
    
        fraDecimal = dIntegral + dFractional ;
    
        printf("Equivalent decimal value: %Lf",fraDecimal);
       
        return 0;
    }
    Sample output: Enter any fractional binary number: 11.11 Equivalent decimal value: 3.750000






    1. Report
  3. Question:C code for fractional decimal to binary converter 

    Answer
    #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;
    }
    Sample output: Enter any fractional decimal number: 5.7 Equivalent binary value: 101.101100






    1. Report
  4. Question:Convert numbers to roman numerals in c 

    Answer
    #include<stdio.h>
    
    void predigits(char c1,char c2);
    void postdigits(char c,int n);
    
    char roman_Number[1000];
    int i=0;
    
    int main(){
    
        int j;
        long int number;
       
        printf("Enter any natural number: ");
        scanf("%d",&number);
       
        if(number <= 0){
             printf("Invalid number");
             return 0;
        }
    
        while(number != 0){
    
             if(number >= 1000){
                 postdigits('M',number/1000);
                 number = number - (number/1000) * 1000;
             }
             else if(number >=500){
                 if(number < (500 + 4 * 100)){
                     postdigits('D',number/500);
                     number = number - (number/500) * 500;
                 }
                 else{
                     predigits('C','M');
                     number = number - (1000-100);
                 }
             }
             else if(number >=100){
                 if(number < (100 + 3 * 100)){
                     postdigits('C',number/100);
                     number = number - (number/100) * 100;
                 }
                 else{
                     predigits('L','D');
                     number = number - (500-100);
                 }
             }
             else if(number >=50){
                 if(number < (50 + 4 * 10)){
                     postdigits('L',number/50);
                     number = number - (number/50) * 50;
                 }
                 else{
                     predigits('X','C');
                     number = number - (100-10);
                 }
             }
             else if(number >=10){
                 if(number < (10 + 3 * 10)){
                     postdigits('X',number/10);
                     number = number - (number/10) * 10;
                 }
                 else{
                     predigits('X','L');
                     number = number - (50-10);
                 }
             }
             else if(number >=5){
                 if(number < (5 + 4 * 1)){
                     postdigits('V',number/5);
                     number = number - (number/5) * 5;
                 }
                 else{
                     predigits('I','X');
                     number = number - (10-1);
                 }
             }
             else if(number >=1){
                 if(number < 4){
                     postdigits('I',number/1);
                     number = number - (number/1) * 1;
                 }
                 else{
                     predigits('I','V');
                     number = number - (5-1);
                 }
             }
        }
    
        printf("Roman number will be: ");
        for(j=0;j<i;j++)
             printf("%c",roman_Number[j]);
    
        return 0;
    
    }
    
    void predigits(char c1,char c2){
        roman_Number[i++] = c1;
        roman_Number[i++] = c2;
    }
    
    void postdigits(char c,int n){
        int j;
        for(j=0;j<n;j++)
             roman_Number[i++] = c;
       
    }
    Sample output: Enter any natural number: 87 Roman number will be: LXXXVII






    1. Report
  5. Question:C code for roman numbers to English numbers 

    Answer
    #include<stdio.h>
    #include<string.h>
    
    int digitValue(char);
    
    int main(){
    
        char roman_Number[1000];
        int i=0;
        long int number =0;
       
        printf("Enter any roman number (Valid digits are I, V, X, L, C, D, M):  \n");
        scanf("%s",roman_Number);
       
        while(roman_Number[i]){
            
             if(digitValue(roman_Number[i]) < 0){
                 printf("Invalid roman digit : %c",roman_Number[i]);
                 return 0;
             }
                
             if((strlen(roman_Number) -i) > 2){
                 if(digitValue(roman_Number[i]) < digitValue(roman_Number[i+2])){
                     printf("Invalid roman number");
                     return 0;
                 }
             }
    
             if(digitValue(roman_Number[i]) >= digitValue(roman_Number[i+1]))
                 number = number + digitValue(roman_Number[i]);
             else{
                 number = number + (digitValue(roman_Number[i+1]) - digitValue(roman_Number[i]));
                 i++;
             }
             i++;
        }
            
        printf("Its decimal value is : %ld",number);
       
        return 0;
    
    }
    
    int digitValue(char c){
    
        int value=0;
    
        switch(c){
             case 'I': value = 1; break;
             case 'V': value = 5; break;
             case 'X': value = 10; break;
             case 'L': value = 50; break;
             case 'C': value = 100; break;
             case 'D': value = 500; break;
             case 'M': value = 1000; break;
             case '\0': value = 0; break;
             default: value = -1; 
        }
    
        return value;
    }
    Sample output: Enter any roman number (Valid digits are I, V, X, L, C, D, M): XVII Its decimal value is: 17






    1. Report
Copyright © 2025. Powered by Intellect Software Ltd