Compile and run the sample code that uses show_bytes (file show-bytes. c) on different machines to which you have access. Determine the byte orderings used by these machines.
Byte ordering:
- Some machines decide to store the objects in memory ordered from least significant byte to most, while other machines store them from most to least.
- The byte ordering are made by the two ways:
- Little Endian
- In little Endian, the least significant byte comes first.
- Big Endian
- In big Endian, the most significant byte comes first.
- Little Endian
Example:
The example for find the little-endian and big-endian for hexadecimal value is shown below:
Here assume that the hexadecimal value is “0x13244860”. Then address range for given ordering byte is “0x200” through “0x203”.
Big Endian for given hexadecimal value is
0x200 | 0x201 | 0x202 | 0x203 |
13 | 24 | 48 | 60 |
Little Endian for given hexadecimal value is
0x200 | 0x201 | 0x202 | 0x203 |
60 | 48 | 24 | 13 |
Explanation of Solution
Corresponding code from given question:
#include <stdio.h>
//Define variable "byte_pointer" in char datatype.
typedef unsigned char* byte_pointer;
//Function definition for show_bytes.
void show_bytes(byte_pointer start, size_t len)
{
//Declare variable "i" in int data type.
int i;
/* "For" loop to determine byte representation in hexadecimal */
for (i = 0; i < len; i++)
//Display each bytes in "2" digits hexadecimal value.
printf(" %.2x", start[i]);
printf("\n");
}
//Function to determine byte for "int" number.
void show_int(int x)
{
//Call show_bytes function with integer value.
show_bytes((byte_pointer) &x, sizeof(int));
}
//Function to determine byte for "float" number.
void show_float(float x)
{
//Call show_bytes function float value.
show_bytes((byte_pointer) &x, sizeof(float));
}
//Function to determine byte for "pointer" number.
void show_pointer(void *x)
{
//Call show_bytes function with pointer value.
show_bytes((byte_pointer) &x, sizeof(void *));
}
//Test all show bytes.
void test_show_bytes(int val)
{
//Define variables.
int ival = val;
float fval = (float) ival;
int *pval = &ival;
//Call function.
show_int(ival);
show_float(fval);
show_pointer(pval);
}
//Main function.
int main(int argc, char* argv[])
{
//Define the sample number.
int sampleNumber = 682402;
//Call test_show_bytes function.
test_show_bytes(sampleNumber);
return 0;
}
The given program is used to display the byte representation of different program objects by using the casting.
- Define “byte_pointer” using “typedef”.
- It is used to define data type as a pointer to an object of type “unsigned char”.
- The function “show_bytes” is used to display the address of a byte sequence by using the argument that is byte pointer and a byte count.
- Each byte is displayed by “2” digit.
- The function “show_int” is to display the byte representations of object of “int” data type.
- The function “show_float” is to display the byte representations of object of “float” data type.
- The function “show_pointer” is to display the byte representations of object of “void *” data type.
- Test all the data type values by using function “test_show_bytes”.
- Finally, assign the sample number in main function and call the “test_show_bytes” with argument “sampleNumber”.
Byte ordering used by the given machines:
After compiling and running the above code, the following output will be appear
a2 69 0a 00
20 9a 26 49
3c cc e9 18 ff 7f 00 00
From the above output,
- The byte representation for “int” data type is “a2 69 0a 00”.
- The byte representation for “float” data type is “20 9a 26 49”.
- The byte representation for “int *”data type is “3c cc e9 18 ff 7f 00 00”.
The byte ordering used by these machines is “big-endian”.
- Reason:
- Consider, the byte representation of “int” value is “a2 69 0a 00”.
- From this, the value is ordered from most significant byte to least significant byte. Hence, it is referred as big-endian.
Want to see more full solutions like this?
Chapter 2 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
Additional Engineering Textbook Solutions
Introduction To Programming Using Visual Basic (11th Edition)
Degarmo's Materials And Processes In Manufacturing
Computer Science: An Overview (13th Edition) (What's New in Computer Science)
SURVEY OF OPERATING SYSTEMS
Starting Out with C++ from Control Structures to Objects (9th Edition)
Starting Out With Visual Basic (8th Edition)
- Please use python and python file i/o to solve the problem. Create an input file input1_1.txt as shown below, solve the problem and print the output to output1_1.txt file as shown in the question.arrow_forwardPlease use python and python file i/o to solve the problem. Create an input file input1_1.txt take input from sample input as shown below, solve the problem and print the output to output1_1.txt file as shown in the question.arrow_forwardPlease show the code for each part of this assignment using python in a jupyter notebook. The data file previoulsy used that is referenced in the first part is includedarrow_forward
- IN C PROGRAMMING LANGUAGE AND COMMENT EVERY LINE SO I COULD UNDERSTAND EVERY STEP PLEASE, Write a program that implements the binary search for a set of integers stored in a data file. (Note that the data set in sorted in an ascending order).arrow_forwardplease write that program with C languagearrow_forwardTime Write a Python script that extracts and prints a single record from an input file in which organized by line. Each line contains the name of a person (possibly containing multiple followed by the year of his birth. Abbas ibn Firnas ibn Wirda: 809 Muhammad ibn Musa al - Khwarizmi: 780 Abu Al - Walid Muhammad Ibn Ahmad Rushd: 1126 The program uses function extract DataRecord with the specification: @param infile the input text file object @return pants a list containing the name (string) in the first element and the year of bir the second element. If the end of file was reached, an empty list is returnedarrow_forward
- In Python: Build a function that takes a record from your FASTA file as an argument, and returns a count of each amino acid coded for by the codons of the sequence. Keep in mind that because these records are not necessarily in the proper reading frame, so the user should be prompted to select a reading frame (0, +1, +2). You should put some thought into the presentation of your results by your main function, making sure they are clear and readable. The fasta file contains the below: >MD10G1276500 pacid=40089867 polypeptide=MD10G1276500 locus=MD10G1276500 ID=MD10G1276500.v1.1.491…arrow_forwardWhat is the answer in C language?arrow_forwardThis assignment will give you practice with arrays and producing an external output file. You are going to create a program that processes an input file of data for particular DNA sequencer test. This particular DNA sequencer test is designed to take a sample of bacterial and generate a sequence of values for it, and then retest it at a time interval later to see if the DNA has or has not effectively changed. Your assignment is to create a program that will give the user a brief introduction, then allow the user to type in the name of the file to be analyzed, the name of the data file to generate, and then process the data to match the output that is shown below. This DNA test measures the various parts of the sequence and assigns them a letter. While the letters could be anything from A to Z, the only letters that matter for this test are the letters {A,B,C,D} all other letters can be ignored completely. A sample will be tested, given a length of time and then tested again. Each time…arrow_forward
- Complete the table below using ASCIlI code, use the diagram for your reference and upload your file in the space provided. (take a picture of your answer upload your file as much as possible clear copy and write your name at the upper part). PLEASE INCLUDE YOUR SOLOUTION * Test IlI: Complete the following table. (Write your solutions) ASC BCD Hexadecimal Excess-3 Gray code e 01010111 01101101 01001010 e 01010111 U d. 01111111 01010110 01001011 d 01010110 01010101 01011001 01011101 01011101 01010010 t 01001110 a 01010001 01011001 01011101 01011000 t 01001110arrow_forwardWrite a script file [Matlab] that will calculate the volume and weight of the water in any conical tank, using the input function to allow the user to enter a diameter and height. Also, create a function file with two input parameters (diameter and height) and return an array containing the volume and weight of water. Prepare an Excel version as well.arrow_forwardPlease use python and python file i/o to solve the problem. Create an input file input3_1.txt as shown below, solve the problem and print the output to output3_1.txt file as shown in the question. Sample Input Explanation:In sample input 2,Query 0: Initially, there are 8 people in the village who do notknow each other.{1} {2} {3} {4} {5} {6} {7} {8}Query 1: After person 2 and person 4 becoming friends:{1} {2,4} {3} {5} {6} {7} {8} The output is 2, since the size of the friends circle {2,4} is2.Query 2: After person 4 and person 5 becoming friends:{1} {2,4,5} {3} {6} {7} {8}The output is 3, since the size of the friends circle {2,4,5} is3.Query 3: After person 3 and person 6 becoming friends:{1} {2,4,5} {3,6} {7} {8}The output is 2, since the size of the friends circle {3,6} is2.Query 4: After person 4 and person 7 becoming friends:{1} {2,4,5,7} {3,6} {8}The output is 4, since the size of the friends circle {2,4,5,7}is 4.Query 5: After person 3 and person 1 becoming friends:{2,4,5,7}…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education