Question

In: Computer Science

using C language Create a bitwise calculator that ask user for input two input, first int,...

using C language

Create a bitwise calculator that ask user for input two input, first int, bitwise operation, second int (i.e 5 & 9)

only those bitwise operation are allowed: & ~ ^ | << >>. If user uses wrong operators stop program and ask again.

Convert the first int and second int into 8 BITS binary (00000000) and use bitwise operator given by user to either AND, OR, XOR, etc (ie 1001 & 1111)

Solutions

Expert Solution

#include <stdio.h>

#define bits 8

int main(void) {

   // declare variables
   int a, b;
   char op;
   int binA[bits] = {0, 0, 0, 0, 0, 0, 0, 0}; 
   int binB[bits] = {0, 0, 0, 0, 0, 0, 0, 0};
   int res[bits];
    int i = bits - 1;
   int temp;


   // read numbers
   printf("Enter first operand: ");
   scanf("%d", &a);
   printf("Enter second operand: ");
   scanf("%d", &b);

   // read operator
   printf("Enter operation (&, ~, ^, |, <<, >>) (enter < for << and > for >>): ");
   scanf(" %c", &op);

   // operator validation
   while (op != '&' && op != '~' && op != '^' && op != '<' && op != '>' && op != '|') {
      printf("Invalid operation!!");

      printf("\nEnter operation (&, ~, ^, |, <<, >>) (enter < for << and > for >>): ");
      scanf("%c", &op);
   }
   

   // converting first number to binary
   temp = a;
    while (temp > 0) { 
        binA[i] = temp % 2; 
        temp = temp / 2; 
        i--;
    }

   // converting second number to binary
    i = bits - 1; 
   temp = b;
    while (temp > 0) { 
        binB[i] = temp % 2; 
        temp = temp / 2; 
        i--; 
    }


   // display the bits
   printf("\n%d in %d-bits binary = ", a, bits);
   for(i = 0; i < bits; i++) {
      printf("%d", binA[i]);
   }

   printf("\n%d in %d-bits binary = ", b, bits);
   for(i = 0; i < bits; i++) {
      printf("%d", binB[i]);
   }

   // apply the operation accordingly
   // and store the result in the res array
   if (op == '&') {
      for (i = 0; i < bits; i++) {
         res[i] = binA[i] & binB[i];
      }
   }
   else if (op == '^') {
      for (i = 0; i < bits; i++) {
         res[i] = binA[i] ^ binB[i];
      }
   }
   else if (op == '|') {
      for (i = 0; i < bits; i++) {
         res[i] = binA[i] | binB[i];
      }
   }
   else if (op == '<') {
      for (i = 0; i < bits; i++) {
         res[i] = binA[i] << binB[i];
      }
   }
   else if (op == '>') {
      for (i = 0; i < bits; i++) {
         res[i] = binA[i] >> binB[i];
      }
   }
   else {
      for (i = 0; i < bits; i++) {
         if (binA[i] == 1) {
            binA[i] = 0;
         }
         else {
            binA[i] = 1;
         }

         if (binB[i] == 1) {
            binB[i] = 0;
         }
         else {
            binB[i] = 1;
         }
      }
   }


   // display result 

   // if operation is ~ we display both numbres after applying ~ opertaion
   if (op == '~') {
      printf("\n\nResult\n");

      printf("~%d = ", a);
      for (i = 0; i < bits; i++) {
         printf("%d", binA[i]);
      }

      printf("\n~%d = ", b);
      for (i = 0; i < bits; i++) {
         printf("%d", binB[i]);
      }
   }
   
   else if (op == '<') {
      printf("\n\nResult\n");
      printf("%d << %d = ", a, b);
      for (i = 0; i < bits; i++) {
         printf("%d", res[i]);
      }
   }

   else if (op == '>') {
      printf("\n\nResult\n");
      printf("%d >> %d = ", a, b);
      for (i = 0; i < bits; i++) {
         printf("%d", res[i]);
      }
   }

   // else display the result
   else {
      printf("\n\nResult\n");
      printf("%d %c %d = ", a, op, b);
      for (i = 0; i < bits; i++) {
         printf("%d", res[i]);
      }
   }

   return 0;
}

FOR HELP PLEASE COMMENT.
THANK YOU


Related Solutions

Use C++ language Create a program which will ask the user to input three songs for...
Use C++ language Create a program which will ask the user to input three songs for a playlist (you may use TV shows or movies, if you prefer). Declare three strings to store each of the songs. Use getline to receive the input. Display output which lists each of the songs (or movies or tv shows), on separate lines, with a title on the first line: My Playlist. Insert three lines of comments at the beginning of the program for...
Using (C programming language) Create a health monitoring program, that will ask user for their name,...
Using (C programming language) Create a health monitoring program, that will ask user for their name, age, gender, weight, height and other health related questions like blood pressure and etc. Based on the provided information, program will tell user BMI, blood pressure numbers if they fall in healthy range or not and etc. Suggestions can be made as what should be calorie intake per day and the amount of exercise based on user input data. User should be able to...
USING JAVA (netbeans) In your main, ask the user for an int. Do this by first...
USING JAVA (netbeans) In your main, ask the user for an int. Do this by first printing a request for the int, then creating an int x, and using the Scanner to read an int from the user and put it in x, like this: int x = scan.nextInt(); ☑ Next read in two doubles d1 and d2 from the user. This will look a lot like what you did for the int, but the scanner reads doubles using scan.nextDouble();...
Introduction to Java Programing Using Loop Create a simple calculator program using loop Ask user to...
Introduction to Java Programing Using Loop Create a simple calculator program using loop Ask user to input two numbers using scanner class Print the instruction of the menu for the calculator program Ask user to press 0 to Quit Ask user to press 1 to Add Ask user to press 2 to Substract Ask user to press 3 to Multiply Ask user to press 4 to Divide Perform correct calcuation based on user inputs and print the result Print error...
Write a program using C language that -ask the user to enter their name or any...
Write a program using C language that -ask the user to enter their name or any other string (must be able to handle multiple word strings) - capture the epoch time in seconds and the corresponding nanoseconds - ask the user to type in again what they entered previously - capture the epoch time in seconds and the corresponding nanoseconds -perform the appropriate mathematical calculations to see how long it took in seconds and nanoseconds (should show to 9 decimal...
Create a small program that contains the following. ask the user to input their name ask...
Create a small program that contains the following. ask the user to input their name ask the user to input three numbers check if their first number is between their second and third numbers
Language: C# Create a new Console Application. Your Application should ask the user to enter their...
Language: C# Create a new Console Application. Your Application should ask the user to enter their name and their salary. Your application should calculate how much they have to pay in taxes each year and output each amount as well as their net salary (the amount they bring home after taxes are paid!). The only taxes that we will consider for this Application are Federal and FICA. Your Application needs to validate all numeric input that is entered to make...
Q1 Create a program that asks the user to input their budget. Then, it will ask...
Q1 Create a program that asks the user to input their budget. Then, it will ask the user to input each of their purchase until their entire budget is used up. What kind of loop do you think is the most appropriate? You don't have to create the entire program. Part of it has already been created for you (see code below). Note: Assume that the user always uses up their budget to the last cent and they don't over...
Using C++ Create a program that asks the user to input a string value and then...
Using C++ Create a program that asks the user to input a string value and then outputs the string in the Pig Latin form. - If the string begins with a vowel, add the string "-way" at the end of the string. For “eye”, it will be “eye-way”. - If the string does not begin with a vowel, first add "-" at the end of the string. Then rotate the string one character at a time; that is, move the...
Create a console app c#. Using a List, ask the user to enter all of their...
Create a console app c#. Using a List, ask the user to enter all of their favorite things. Once they are done, randomly pick a value from the list and display it.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT