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
Web Development and Design Foundations with HTML5 (8th Edition)
Digital Fundamentals (11th Edition)
Starting Out With Visual Basic (8th Edition)
Web Development and Design Foundations with HTML5 (9th Edition) (What's New in Computer Science)
Starting Out with Python (3rd Edition)
- Time 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_forwardUsing good OOP, write a C++ program that will compare two arrays to test for the same elements and multiplicity. To begin, populate the arrays with the input files, comFile1.txt and comFile2.txt. The elements in the arrays do not need to be in the same order for them to be considered similar. For example:comFile1.txt TO array 1: 121 144 19 161 19 144 19 11comFile2.txt TO array 2: 11 121 144 19 161 19 144 19 would be considered to have the same elements because 19 appears 3 times in each array, 144 appears twice in each array, and all other elements appear once in each array.Use pointer notation instead of array notation whenever possible.Display whether or not the arrays have the same elements and multiplicity.Use private member functions and variables.Use public member functions for a constructor (where appropriate) and a driver method only.These specifications do not give a list of method names to be used. It is assumed the…arrow_forwardUsing good OOP, write a C++ program that will compare two arrays to test for the same elements and multiplicity. To begin, populate the arrays with the input files, comFile1.txt and comFile2.txt. The elements in the arrays do not need to be in the same order for them to be considered similar. For example:comFile1.txt TO array 1: 121 144 19 161 19 144 19 11comFile2.txt TO array 2: 11 121 144 19 161 19 144 19 NOTE: Professor mentioned that the array Size should be 300 as eh will be testing the code with different files other than these two he has provided for examples. would be considered to have the same elements because 19 appears 3 times in each array, 144 appears twice in each array, and all other elements appear once in each array.Use pointer notation instead of array notation whenever possible.Display whether or not the arrays have the same elements and multiplicity.Use private member functions and variables.Use public member…arrow_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_forwardHow to calculate rows and columns in File handling with Multi Dimension Array. First read the data from the file into array. Give code and c++ language. Take any problem of your choose.arrow_forwardHow to reading information from file to parallel arrays ,by using c programming,then do a calcaulation in parallel array, can you write a comment to understand what you do? Thank youarrow_forward
- Using good OOP, write a C++ program that will compare two arrays to test for the same elements and multiplicity. To begin, populate the arrays with the input files, comFile1.txt and comFile2.txt. The elements in the arrays do not need to be in the same order for them to be considered similar. For example:array 1: 121 144 19 161 19 144 19 11array 2: 11 121 144 19 161 19 144 19would be considered to have the same elements because 19 appears 3 times in each array, 144 appears twice in each array, and all other elements appear once in each array.Use pointer notation instead of array notation whenever possible.Display whether or not the arrays have the same elements and multiplicity.Use private member functions and variables.Use public member functions for a constructor (where appropriate) and a driver method only.These specifications do not give a list of method names to be used. It is assumed the program will use several methods doing…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_forwardRead the txt file in Python and display the output in a separate txt file as shown below; Input txt file:30 2535 4041 4526 2641 4543 4749 4446 4710 1535 2011 1729 16 output txt file: [[[30,25],[35,40],[41,45],[26,26]], [[41,45],[43,47],[49,44],[46,47]], [[10,15],[35,20],[11,17],[29,16]]]arrow_forward
- CPP MUST MATCH OUTPUT IN PICS thank you for the help please match up In this lab, you're going to be working with partially filled arrays that are parallel with each other. That means that the row index in multiple arrays identifies different pieces of data for the same person. This is a simple payroll system that just calculates gross pay given a set of employees, hours worked for the week and hourly rate. Parallel Arrays First, you have to define several arrays in your main program employee names for each employee hourly pay rate for each employee total hours worked for each employee gross pay for each employee You can use a global SIZE of 50 to initialize these arrays Second, you will need a two dimension (2-D) array to record the hours worked each day for an employee. The number of rows for the 2-D array should be the same as the arrays above since each row corresponds to an employee. The number of columns represents days of the week (7 last I looked) Functions Needed In this…arrow_forwardThe following program does not currently have any comments. Copy the programto your m-file. Add comments to the code. Every single line of code should be explained witha comment. Also, the function of the script should be explained. load datavals.mat[r,c]=size(datavals);for row = 1:r runsum=0; for col=1:c if datavals(row,col) > 0 runsum = runsum+datavals(row,col); end endfprintf('The total sum of positive numbers is %f \n',runsum)endarrow_forwardThe university is planning for an industrial visit to an ABC company. The faculty has to create a name list and record it in a text file. Write a python program to create a text file with the student's registration number and name. Finally, read the student details from the file and print them in sorted order based on the register number. (Note: Use for loop to print the details) INPUT: Enter the file name Enter the number of students N For each N student Enter the registration number name (single string) OUTPUT Print the details of student one by one in sorted order based on the reg noarrow_forward
- Systems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage Learning