Sponsored Content
Homework and Emergencies Homework & Coursework Questions Splitting a numbers binary representation for a double. Post 302664743 by robin_simple on Saturday 30th of June 2012 11:45:10 AM
Old 06-30-2012
Splitting a numbers binary representation for a double.

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

1. The problem statement, all variables and given/known data:
Split a 64bit hexadecimal number into two 32 bit numbers or keys.


2. Relevant commands, code, scripts, algorithms:
Code:
double key = 0; //Stores the key value entered by the user.
double key_copy = key;
int k1;  //1st half of key.
int k2;  //2nd half of key.

3. The attempts at a solution (include all code and scripts):
Code:
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;

int main( int argc, char * argv[] )
{
double key = 0; //Stores the key value entered by the user.
double index = 15; /*Used for pow function.  For loop index corresponds to
hexadecimal powers.*/
if( argc > 1 )
{
if( strlen( argv[1] ) == 16 )
{
        for( int i = 0; i < 16; i++ )
        {
                switch( argv[1][i] )
                {
                        case '0': key += 0 * pow( 16.0, index );
                                break;
                        case '1': key += 1 * pow( 16.0, index );
                                break;
                        case '2': key += 2 * pow( 16.0, index );
                                break;
                        case '3': key += 3 * pow( 16.0, index );
                                break;
                        case '4': key += 4 * pow( 16.0, index );
                                break;
                        case '5': key += 5 * pow( 16.0, index );
                                break;
                        case '6': key += 6 * pow( 16.0, index );
                                break;
                        case '7': key += 7 * pow( 16.0, index );
                                break;
                        case '8': key += 8 * pow( 16.0, index );
                                break;
                        case '9': key += 9 * pow( 16.0, index );
                                break;
                        case 'A': key += 10 * pow( 16.0, index );
                                break;
                        case 'B': key += 11 * pow( 16.0, index );
                                break;
                        case 'C': key += 12 * pow( 16.0, index );
                                break;
                        case 'D': key += 13 * pow( 16.0, index );
                                break;
                        case 'E': key += 14 * pow( 16.0, index );
                                break;
                        case 'F': key += 15 * pow( 16.0, index );
                                break;
                        default: cout << "You entered a non-hexadecimal value.\n";
                                exit(0);
                }
                index--;
        }

        double key_copy = key;
        int k1;  //1st half of key.
        int k2;  //2nd half of key.
        key_copy /= pow( 2.0, 32.0 );  //Shift key to right to get 1st half of binary.
        k1 = (int) key_copy;
        key_copy = key;
        key_copy *= pow( 2.0, 31.0 );  //Shift key to left then right to get 2nd half
        key_copy /= pow( 2.0, 31.0 );  //of binary representation.
        k2 = key_copy;

        cout << k1 << endl;
        cout << k2 << endl;
}
}
        return 0;
}


4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
University of Missouri Saint Louis, Saint Louis (Missouri), United States, Michael Schulte, 4780 (cs.umsl.edu/~schulte)

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using binary representation of IEEE 754

Hi! What is the way to get the binary representation of a IEEE 754 (like 0001110110001111010101100111001011100100101010111101) without using perl. Bash for example, would be fine. I need to put that representation in a string for some operation and then to put that string back in a float. ... (3 Replies)
Discussion started by: Zephyr
3 Replies

2. Programming

Internal representation of double

I came across a puzzle which I can not explain. The setup is SCO OpenServer 5.7 (32 bit OS) and native SCO compiler. double is 8 bytes long on this system. I am able to populate the double variable with two different sets of values that produces the same double value, please see below: #include... (7 Replies)
Discussion started by: migurus
7 Replies

3. Shell Programming and Scripting

Splitting file based on line numbers

Hello friends, Is there any way to split file from n to n+6 into 1 file and (n+7) to (n+16) into other file etc. f.e I have source pipe delimated file with 20 lines and i need to split 1-6 in file1 and 7-16 in file2 and 17-20 in file 3 I need to split into fixed number of file like 4 files... (2 Replies)
Discussion started by: Rizzu155
2 Replies

4. Shell Programming and Scripting

Put double quotes around numbers

Hi, consider a file which has data such as "random text",912345,"54","finish" "random text",9991236745,"9954","finish" I want to replace the numbers that don't have double quotes around them with ones that do; so the output should be "random text","912345","54","finish" "random... (4 Replies)
Discussion started by: Storms
4 Replies

5. Shell Programming and Scripting

Splitting a file based on positive and negative numbers

Dear All, I have to split a tab delimited file in two files based on the presence of a positive or negative in column number 9 , for example file: A 1 5 erg + 6766 0.9889 0.9817 9.01882 erg inside upstream B 1 8 erg2 + 6766 0.9889 0.9817 -9.22 erg2 inside... (3 Replies)
Discussion started by: paolo.kunder
3 Replies

6. Shell Programming and Scripting

Convert binary file to csv and then back to the binary format

Hello *nix specialists, Im working for a non profit organisation in Germany to transport DSL over WLAN to people in areas without no DSL. We are using Linksys WRT 54 router with DD-WRT firmware There are at the moment over 180 router running but we have to change some settings next time. So my... (7 Replies)
Discussion started by: digidax
7 Replies

7. Programming

How bit representation of a number can be done in c?

I have an assignment in which a character is the input of which some bits(from a position to certain position) are to be inverted (1's complement) and then the resultant character is to be returned....for example unsigned char x = J from p = 3 to offset n = 5 01001010 inverted to... (1 Reply)
Discussion started by: ezee
1 Replies

8. UNIX for Beginners Questions & Answers

Splitting a file based on negative and positive numbers

I have a file that is pipe delimited and in Column F they have number values, both positive and negative. I need to take the one file I am starting with and split it into two separate files based on negative and positive numbers. What is the command to do so? And then I need to also transfer... (4 Replies)
Discussion started by: cckaiser15
4 Replies
All times are GMT -4. The time now is 10:03 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy