
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)
- Q2: Solve the equation using the simplex method Max. Z 13x1 +11x2 Subject to constraints 4x1 +5x21500 5x1 +3x21575 x1 +2x2 <420 x1, x2≥0arrow_forwardBasically, you must build a desktop/android application that utilizes cryptographic techniques/protocols to secure communication (or data at rest). Try to achieve confidentiality, integrity, availability, authentication, non-repudiation (preferably all of them, otherwise few of them based on the requirement).You must demonstrate the use of these cryptographic techniques by showing some outputs/visualization results or captured traffic such as through Wireshark.1. Secure Chat ApplicationDescription: Build an encrypted chat application for desktop or Android that ensures confidentiality, integrity, authentication, and non-repudiation.Features:-- End-to-end encryption using AES-256 or Signal Protocol.--Digital signatures for non-repudiation.--Message integrity verification using HMAC.Secure login using two-factor authentication (2FA).--Server-side availability mechanisms (e.g., load balancing, backup storage). Technologies: Python (PyQt + PyCryptodome), Java (Android), Firebase for…arrow_forwardQ1: Draw the equation of z with constraints according to the graphic method Max Z-3 P1+5 P2 s.t. P1 4 P2 6 3 P1+2 P2 <18 P1, P2 20arrow_forward
- Many employees and suppliers are resistant to adopting the new e-procurement system. They are accustomed to traditional procurement methods and are hesitant to embrace the change. How would you effectively manage this resistance and ensure a smooth transition to the new system?arrow_forwardswitch status (learning, listening, for wording) Write a detailed explanation of the topic. networkarrow_forwardSolve thisarrow_forward
- Solve this please and fastarrow_forwardPlease original work Background information: Imagine you are a consultant for a fictional company, FutureTech Innovations, which specializes in advanced technology products. The company is interested in improving its decision-making processes by leveraging Business Analytics (BA) and Management Support Systems (MSS). Talk about how Online Analytical Processing (OLAP) could be used to analyze data from multiple perspectives at FutureTech. What dimensions (e.g., time, product, region) would be important, and how would OLAP enhance decision-making? Talk about the role of data visualization in helping FutureTech understand business performance. What types of visualizations (e.g., dashboards, charts) would be useful, and how would they assist in interpreting data? Please cite in text references and add weblinksarrow_forwardDesign a synchronous Up/Down counter to produce the following sequence (4 9 2,0,7,6,3,1,5) using T flip-flop. The counter should count up when Up/Down =1, and down when Up/Down = 0.arrow_forward
- An active-HIGH pulse (HIGH level when asse rted, LOW level when not) is required on an i nverter input.(a) Draw the appropriate logic symbol, using t he distinctive shape and the negation indicat or, for the inverter in this application.(b) Describe the output when a positive-goin g pulse is applied to the input of an inverter.arrow_forwardConvert this question to Subroutines ORG 100 LDA A1 STA T1 LDA B1 STA T2 LDA T1 I STA A1 I ISZ B1 ISZ A1 ISZ ENC BUN L2 //COMPUTER HLT L1, INC A1, HEX 5000 STA T2 1 B1, HEX 6000 ISZ T1 T1, HEX O ISZ T2 T2, HEX 0 ISZ DCD DCD, DEC -8 BUN L1 // DPNQVUFS ENC, DEC -8 LDA B1 I DEC, HEX FF L2, ADD DEC ENDarrow_forwardConvert this question to Subroutines > F = [(A. B) + (A'. B')]” = [(A. B)'. (A'. B')']' ORG 100 LDA A // Load A operand to AC HLT // END Program AND B CMA STA T1 LDA A CMA STA T2 LDA B CMA AND T2 CMA // Store AC result in T1 // Load A operand to AC // Complement result in AC // Store AC [A'] result in T2 // Load B operand to AC // Complement result in AC // AND B' with T2[A'] operand // Complement result in AC AND T1 // AND [(A'.B')'] with T1[(A.B)'] CMA // Complement result in AC STA F // Store AC result in F // AND A operand with B operand B, HEX 01 // Complement result in AC A, HEX 01 T1, HEX O T2, HEX 0 F, HEX 0 ENDarrow_forward
- Computer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Concepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningPrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY





