C/C++ :: Converting Integer Number To Its 2's Complement Presentation
Jan 28, 2014
I am working on an assignment about converting an integer number to its 2's complement presentation. The binary representation is consisting of a single linked list.
As we all know, the steps of this converting is to taking the reminder of the absolute value, then flipping the 1 to be 0, and the 0 to be 1 in the binary number. And the last step will be to add 1 to the binary number invers.
I wrote a code that implements every thin correctly. However, when I reached the part of adding 1, the program was hanged.
int Absolute; //the first step is to convert the number to the binry reprezentation
Absolute = abs (value);// by take the Absolute value of the negative number, then find the
while (Absolute !=0) //the binary reprezentation {
int res;
res= (Absolute % 2);
pushFront (res);
Absolute /=2 ;
I have to implant a code to convert any integer to its 2'complement. I have already finished the first and the second part, which was to convert the integer to its binary representation, then to invert each digit in the binary representation. The third part is to add 1 to the binary representation.
// the last step is to add 1 to the binary number int carryIn=0; int carryOut; for(itr= bainaryList.begin(); itr!= bainaryList.end(); itr++) { //start comparing the possibilities of the values in both lists if (((*itr)==0) && (carryIn== 0))
In this exercise:The C Programming Language Exercise 3-4..It states the following: "In a two's complement number representation, our version of itoa does not handle the largest negative number, that is, the value of n equal to -(2 to the power (wordsize - 1)) ."
A char is one byte (255 bits). The range of an 8 bit variable using a two's complement representation is -128 to 127. Therefore -128 is the largest negative value. The statement in book suggests that the itoa function will not output -128 if we pass -128 as a parameter, because in itoa when we try to convert -128 to positive -128, the inverse of -128 is -128. However, I just ran this code in my computer and it successfully outputted -128.
Code:
#include <stdio.h> #include <string.h> #define SIZE 10 void reverse(char s[]) { int c, i, j; }
Ok so I'm in a programming 1 class working with c++. I have the following assignment:
Write a C++ program that: asks for and accepts the Percentage earned with as a double (i.e. 75.45) rounds it to an integer (>= .5 rounds up, <.5 rounds down.) prints the original Percentage and the corresponding Grade and Points exactly as shown below. prints an error message for any input that is less than 0 or greater than 100.
For example, if user enters 89.4, the program prints out: Percentage: 89.4% Grade: B Points: 3.00 You must use an if-else statement to do this in your program. Use fixed and precision output manipulators (see Ch. 3) to display the values with the exact precision shown above.
IMPORTANT: Each if statement condition should contain only one comparison! read this again This means code that is similar to this is NOT okay: if (Percentage >= 80.00 && Percentage <90.00) This code is not acceptable because the if statement condition above has two comparisons. (Hint: If you order your if-else chain statements correctly, you will only need one comparison in each.)
I have the program working, but I'm pretty sure I'm not rounding how my professor would like it to. This is my code:
So my issue here is the rounding, and then theres the converting the double percetnage to an integer. In my next assignment I have to write the program with a switch statement.
I have this function and it works, the problem is that it couts a bunch of stuff that I don't need. What this functions does asks the user to input a job (show) and if the show is found to list all the talents (actors/actresses). If the show is not found, to print "show not found". I have the function working just need to present it better. What I want the function to do is just print "show not found" and nothing else. How I have it currently will print:
Notice how its outputting all the unnecessary information. If the job is found should look like this:
Uploaded with ImageShack.us
Code: void TalentsByJob(Agency Talents[], int limit) { system("CLS"); string show; cout << "Enter the Job: "; cin >> show; bool found = false;
For Example, it the entered string is: 0324152397 I want it to get stored in an array like-[0] [3] ...[7]. Secondly the string entered may be of any length that is defined only at run time. So, I also need to calculate string length. How could I do that.
I'm able to convert an integer to a vector<unsigned char> and back. However, when I try to use a nearly identical function designed for the long long data type, the last byte or two is broken.
Program code:
long long num = 9223372036854775551LL; cout << "Before: " << num << endl; vector<unsigned char> data = getBytes(num); num = getLongLong(data); cout << "After: " << num << endl;
Code for converting between vector<unsigned char> and long long:
Code: vector<unsigned char> getBytes(long long value) { int bytes = sizeof(value); vector<unsigned char> data(bytes); for (int i = 0; i < bytes; i++) data.at(i) = (unsigned char)( value >> ((bytes-i)*8) );
In my homework, x is unknown. but don't worry, I wont ask for the full code. I just need the part where you change the int into a string/array of char.
I was told to use a round function to round a number to give an integer number that is closer to the real value. (for example if the number is 114.67 I need to print an int value of 115 instead of 114)
I am not exactly sure how a round function works, but I am told to include math.h library. What I try doesn't seem to work.
I'm having trouble converting a 4 digit number into a BCD number, in the program I did below I was able to convert a 2 digit number into BCD, but I do not know how to convert a 4 digit number or how to start it.
#include <cstdlib> #include <iostream> #include <string> using namespace std; int main(int argc, char *argv[])
I'm a games/apps developer and right now I'm developing games/apps for iOS, Android and also PC / Facebook. I've also been working on C++ for some time but since I'm learning it all by myself, I still have some beginner doubts.
Is there any easy way to code a value conversion (for example an octal value to an actual number)?
The program is supposed to convert a two digit hexadecimal number to its binary representation. My code runs without any problems but I do not know how to limit the user's input to two digits only. For example the person can input "1ABC" and the program will give the binary representation and I need it to only accept two digit only like for example "1A".
#include<stdio.h> #define MAX 1000 int main(){ char binaryNumber[MAX],hexaDecimal[MAX]; long int i=0; printf("Enter a two digit hexadecimal number: ");
Write a program in c++ to accept a number and convert this number into binary or hexa decimal or octal number according to the user choice using the concept of array.
Store the result into an array D of 8 elements. Your program should show the decimal numbers for every binary number. Print screen of 6 answers. This means you should try your program six times with different numbers in every run and show the printed screen result.
I want to perform operation like prime,armstrong finding etc on in C using very large number, bigger data types supported by C. scanf and print. I tried CLN and GNUMP library but I did not get clue how to use it...
I'm writing a function that stores a number into an array. If the number is greater that the lowest number in the array then it replaces it. The array size is 10. When the number is stored in the array. The lowest number must then be remove.
Write a program that reads four integers from a file ‘input.txt’.
The program will then create a single integer number from the four integers. The output of the program will be the single number and single number + 600.
#include <iostream> using namespace std; int main () { int number , a; cout<<"enter en integer number"; cin>>number; cout<<"add 600 to the number" cin>>a=number+600; return 0; }