Computer system : Clarification needed

In summary: Two consecutive integers of 32 bits size in a small end row. We...consider $2^4=16$ and so we get numbers of the form $n_3\cdot 16^3 + n_2\cdot 16^2+n_1\cdot 16^1+n_0\cdot 16^0$ ?
  • #1
mathmari
Gold Member
MHB
5,049
7
Hey! 😊

I am looking at the following but I haven't really understood the exercise statement. Could you explain that to me? :unsure:When the memory of a computer system is addressed by bytes, the storage of an information unit larger than one byte can be done in one of the following ways:
a) The most important digit is placed first in memory (big end - big endian)
b) The least important bit is placed first in the memory (little endian)

For example, the number of 32 bits 0x891af024 (the "0x" indicates hexadecimal representation) is stored in the first order in the order of 0x89, 0x1a, 0xf0 and 0x24, while in the second way it is stored in the reverse order of bits.

Consider the following memory fragment of a computer system, in ascending addresses, where addressing is done per bit:

1631718966484.png


Find what this layout represents in the following cases of information:

a) An integer of 64 bits in the big end series.

b) Two consecutive integers of 32 bits size in a small end row.

c) A fixed-point number with 24 integers and 40 fractional digits in a small end row.

d) One real (floating point) according to IEEE 754 standard of 64 bits in the big end series.

e) Two consecutive real (floating point) according to IEEE 754 standard of 32 bits in a small end series.

g) A real (floating point) where the most important digit is the sign of the number, the 15 most important digits after the sign is the exponent in a complement expression in relation to 2, and the rest is the measure of the coefficient, normalized with an implied integer unit in a small end series.

h) A string encoded based on the ASCII standard.
 
Last edited by a moderator:
Technology news on Phys.org
  • #2
Hey mathmari!

First off, can you figure out which number each line represents?
The top line shows 01010110, which represent $0\cdot 2^7 + 1\cdot 2^6 +\ldots +0\cdot 2^0$.
This is an 8-bit integer with a range of 0-255. 🤔

For (a) we have a 64-bit integer. It is comprised of 8 8-bit integers.
Let the 8-bit numbers be $n_0, n_1,\ldots, n_7$.
Since it is big endian the first number is the most significant.
It means that we need to calculate $n_0\cdot 256^7 + n_1\cdot 256^6+\ldots+n_7\cdot 256^0$. 🤔
 
  • #3
Klaas van Aarsen said:
First off, can you figure out which number each line represents?
The top line shows 01010110, which represent $0\cdot 2^7 + 1\cdot 2^6 +\ldots +0\cdot 2^0$.
This is an 8-bit integer with a range of 0-255. 🤔

We have the following :

01010110 represents in decimal 86
01100001 represents in decimal 97
01100011 represents in decimal 99
01000001 represents in decimal 65
01110100 represents in decimal 116
01101001 represents in decimal 105
01101111 represents in decimal 111
01001110 represents in decimal 78

Right? :unsure:
Klaas van Aarsen said:
For (a) we have a 64-bit integer. It is comprised of 8 8-bit integers.
Let the 8-bit numbers be $n_0, n_1,\ldots, n_7$.
Since it is big endian the first number is the most significant.
It means that we need to calculate $n_0\cdot 256^7 + n_1\cdot 256^6+\ldots+n_7\cdot 256^0$. 🤔

How do you get $256$ ? :unsure:
 
  • #4
mathmari said:
We have the following :

01010110 represents in decimal 86
01100001 represents in decimal 97
01100011 represents in decimal 99
01000001 represents in decimal 65
01110100 represents in decimal 116
01101001 represents in decimal 105
01101111 represents in decimal 111
01001110 represents in decimal 78

Right?
I only checked the first two, which are correct. (Nod)
How do you get $256$ ?
Because an 8-bit number has a range of $2^8=256$.
Strictly speaking we put all bits next to each other and multiply them with $2^{63}$ down to $2^0$.
We can group them in 8-bit numbers and multiply with $256^7$ down to $256^0$ instead. 🤔
 
  • #5
Klaas van Aarsen said:
I only checked the first two, which are correct. (Nod)

I haven't really undestood how we use these numbers? Do we use them to determine these $n_i$ at $n_0\cdot 256^7 + n_1\cdot 256^6+\ldots+n_7\cdot 256^0$ ? :unsure:
Klaas van Aarsen said:
Because an 8-bit number has a range of $2^8=256$.
Strictly speaking we put all bits next to each other and multiply them with $2^{63}$ down to $2^0$.
We can group them in 8-bit numbers and multiply with $256^7$ down to $256^0$ instead. 🤔

a) An integer of 64 bits in the big end series.

We have that $64=8\cdot 8$ so we consider $2^8=256$ and so we get numbers of the form $n_0\cdot 256^7 + n_1\cdot 256^6+\ldots+n_7\cdot 256^0$, where $n_i$ are determined for a specific number. b) Two consecutive integers of 32 bits size in a small end row.

We have that $32=8\cdot 4$ so do we consider in this case $2^4=16$ and so we get numbers of the form $n_3\cdot 16^3 + n_2\cdot 16^2+n_1\cdot 16^1+n_0\cdot 16^0$ ? :unsure:
 
  • #6
mathmari said:
I haven't really undestood how we use these numbers? Do we use them to determine these $n_i$ at $n_0\cdot 256^7 + n_1\cdot 256^6+\ldots+n_7\cdot 256^0$ ?

Yes. (Nod)
a) An integer of 64 bits in the big end series.

We have that $64=8\cdot 8$ so we consider $2^8=256$ and so we get numbers of the form $n_0\cdot 256^7 + n_1\cdot 256^6+\ldots+n_7\cdot 256^0$, where $n_i$ are determined for a specific number.

Yes. (Nod)

b) Two consecutive integers of 32 bits size in a small end row.

We have that $32=8\cdot 4$ so do we consider in this case $2^4=16$ and so we get numbers of the form $n_3\cdot 16^3 + n_2\cdot 16^2+n_1\cdot 16^1+n_0\cdot 16^0$ ?
No. (Shake)
In little endian the numbers are grouped in 8-bit integers, and the first one is the least significant.
So we have $n_0 \cdot 256^0 + n_1 \cdot 256^1 + n_2 \cdot 256^2 + n_3\cdot 256^3$ where $n_0$ is the number on the top line. 🤔
 
  • #7
Klaas van Aarsen said:
In little endian the numbers are grouped in 8-bit integers, and the first one is the least significant.
So we have $n_0 \cdot 256^0 + n_1 \cdot 256^1 + n_2 \cdot 256^2 + n_3\cdot 256^3$ where $n_0$ is the number on the top line. 🤔

Ah do we have that
$01010110 \rightarrow n_0=86$
$01100001 \rightarrow n_1=97$
$01100011 \rightarrow n_2=99$
$01000001 \rightarrow n_3=65$
$01110100 \rightarrow n_4=116$
$01101001 \rightarrow n_5=105$
$01101111 \rightarrow n_6=111$
$01001110 \rightarrow n_7=78$
? :unsure:
 
  • #8
Yep. (Nod)
 
  • #9
Klaas van Aarsen said:
Yep. (Nod)

Ahh ok!c) A fixed-point number with 24 integers and 40 fractional digits in a small end row.

We have that $24=8\cdot 3$ and $40=8\cdot 5$.
Do we have then $n_0\cdot 256^0+n_1\cdot 256^1+n_2\cdot 256^2+n_3\cdot 256^{-1}+n_4\cdot 256^{-2}+n_5\cdot 256^{-3}+n_6\cdot 256^{-4}+n_7\cdot 256^{-5}$ ? :unsure:
d) One real (floating point) according to IEEE 754 standard of 64 bits in the big end series.

Which is here the difference of (c) except that here we have big end series instead of small end? :unsure:
 
  • #10
mathmari said:
Ahh ok!c) A fixed-point number with 24 integers and 40 fractional digits in a small end row.

We have that $24=8\cdot 3$ and $40=8\cdot 5$.
Do we have then $n_0\cdot 256^0+n_1\cdot 256^1+n_2\cdot 256^2+n_3\cdot 256^{-1}+n_4\cdot 256^{-2}+n_5\cdot 256^{-3}+n_6\cdot 256^{-4}+n_7\cdot 256^{-5}$ ?

In little endian order, the bytes are reversed.
That is, it should be $n_0\cdot 256^{-5}+n_1\cdot 256^{-4}+n_2\cdot 256^{-3}+n_3\cdot 256^{-2}+n_4\cdot 256^{-1}+n_5\cdot 256^{0}+n_6\cdot 256^{1}+n_7\cdot 256^{2}$. 🤔

mathmari said:
d) One real (floating point) according to IEEE 754 standard of 64 bits in the big end series.

Which is here the difference of (c) except that here we have big end series instead of small end?
IEEE floating point has a different format with a so called mantissa and an exponent.
The 64-bit version has the following layout:
IEEE_754_Double_Floating_Point_Format.svg

Furthermore,

The sign bit determines the sign of the number (including when this number is zero, which is signed).
The exponent field is an 11-bit unsigned integer from 0 to 2047, in biased form: an exponent value of 1023 represents the actual zero. Exponents range from −1022 to +1023 because exponents of −1023 (all 0s) and +1024 (all 1s) are reserved for special numbers.

🤔

... except that here we have big end series instead of small end?
The bytes are exactly in the order of the IEEE number in the big endian version.
In the little endian version the 8 bytes are reversed in order. 🤔
 
Last edited:
  • #11
Klaas van Aarsen said:
IEEE floating point has a different format with a so called mantissa and an exponent.
The 64-bit version has the following layout:
IEEE_754_Double_Floating_Point_Format.svg

Furthermore,

The sign bit determines the sign of the number (including when this number is zero, which is signed).
The exponent field is an 11-bit unsigned integer from 0 to 2047, in biased form: an exponent value of 1023 represents the actual zero. Exponents range from −1022 to +1023 because exponents of −1023 (all 0s) and +1024 (all 1s) are reserved for special numbers.

🤔

So is it as in (c) just with the sign? Or how many digits do we have as exponent and how many as fraction? :unsure:
 
  • #12
mathmari said:
So is it as in (c) just with the sign? Or how many digits do we have as exponent and how many as fraction?
We have exactly 11 bits in the exponent, and we have 52 bits in the fraction. 🤔

The number is $\pm\text{sign} \cdot 2^{\text{exponent} -1023} \cdot 0.\text{fraction}$.
 
  • #13
Klaas van Aarsen said:
We have exactly 11 bits in the exponent, and we have 52 bits in the fraction. 🤔

So we represent $11$ and $52$ using $8$ ? Or what are we supposed to do now? I got stuck right now. :unsure:
 
  • #14
mathmari said:
So we represent $11$ and $52$ using $8$ ? Or what are we supposed to do now? I got stuck right now. :unsure:
First we write all the bits next to each other.
So that is:
01010110 01100001 01100011 and so on.

The first bit is the sign bit, which is 0. It means that the number is positive.

The next 11 bits are 10101100110, which is 1382.
The exponent is in a biased form and 1023 corresponds to zero.
So the actual exponent is 1382-1023=359.

Then we get the fraction, which starts with 0011.
It means that the fraction is $0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4} +\ldots = 0.125+0.0625+\ldots \approx 0.19$.

So the number is approximately $+0.19\cdot 2^{359}$. 🤔
 
  • #15
Klaas van Aarsen said:
First we write all the bits next to each other.
So that is:
01010110 01100001 01100011 and so on.

The first bit is the sign bit, which is 0. It means that the number is positive.

The next 11 bits are 10101100110, which is 1382.
The exponent is in a biased form and 1023 corresponds to zero.
So the actual exponent is 1382-1023=359.

Then we get the fraction, which starts with 0011.
It means that the fraction is $0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4} +\ldots = 0.125+0.0625+\ldots \approx 0.19$.

So the number is approximately $+0.19\cdot 2^{359}$. 🤔

How did you get that the fraction starts with 0011 ? :unsure:
So at e) Two consecutive real (floating point) according to IEEE 754 standard of 32 bits in a small end series. do we have the following then?

First we write all the bits next to each other.
So that is:
01010110 01100001 01100011 and so on.

The first bit is the sign bit, which is 0. It means that the number is positive.

The next 8 bits are 10101100, which is 172.
The exponent is in a biased form and 127 corresponds to zero.
So the actual exponent is 172-127=45.

Now we have to check the fraction.

Is that correct so far? :unsure:
 
  • #16
mathmari said:
How did you get that the fraction starts with 0011 ?
We have 01010110 01100001 01100011 ...
Let's regroup that a bit:
0 10101100110 000101100011...

I made a mistake.
Oh, and I just looked it up and the fraction always starts with $1$. (Blush)
So the fraction is $1.000101100011\ldots$

mathmari said:
So at e) Two consecutive real (floating point) according to IEEE 754 standard of 32 bits in a small end series. do we have the following then?

First we write all the bits next to each other.
So that is:
01010110 01100001 01100011 and so on.

The first bit is the sign bit, which is 0. It means that the number is positive.

The next 8 bits are 10101100, which is 172.
The exponent is in a biased form and 127 corresponds to zero.
So the actual exponent is 172-127=45.

Now we have to check the fraction.

Is that correct so far?
Nope. (Shake)

In this case we have "a small end series".
It means that we have to reverse the bytes first.
The first 32-bit floating point number is in the first 4 bytes, which are 01010110 01100001 01100011 01000001.
When we reverse them, we get 01000001 01100011 01100001 01010110.
Regroup to get: 0 10000010 11000110110000101010110.

So the sign bit is still 0, but the exponent is different. 🤔
 
Last edited:
  • #17
Klaas van Aarsen said:
We have 01010110 01100001 01100011 ...
Let's regroup that a bit:
0 10101100110 000101100011...

I made a mistake. The fraction starts with 000101100011... (Blush)

So it is the part after the first 12 bits (sign and 11 bits), right? :unsure:
Klaas van Aarsen said:
In this case we have "a small end series".
It means that we have to reverse the bytes first.
The first 32-bit floating point number is in the first 4 bytes, which are 01010110 01100001 01100011 01000001.
When we reverse them, we get 01000001 01100011 01100001 01010110.
Regroup to get: 0 10000010 11000110110000101010110.

So the sign bit is still 0, but the exponent is different. 🤔

So the 8 bits after the sign we have 10000010 which is 130.
The exponent is in a biased form and 127 corresponds to zero.
So the actual exponent is 130-127=3.
Then we get the fraction, which starts with 1100.
It means that the fraction is $1\cdot 2^{-1} + 1\cdot 2^{-2} + 0\cdot 2^{-3} + 0\cdot 2^{-4} +\ldots \approx 0.75$.
So the number is approximately $+0.75\cdot 2^{3}$.

Is everything correct? :unsure: In this case we are looking for Two consecutive real (floating point). What does this mean? Do we find one number and then we just give also the next one? :unsure:
 
  • #18
mathmari said:
So it is the part after the first 12 bits (sign and 11 bits), right?

Yep. (Nod)

mathmari said:
So the 8 bits after the sign we have 10000010 which is 130.
The exponent is in a biased form and 127 corresponds to zero.
So the actual exponent is 130-127=3.
Then we get the fraction, which starts with 1100.
It means that the fraction is $1\cdot 2^{-1} + 1\cdot 2^{-2} + 0\cdot 2^{-3} + 0\cdot 2^{-4} +\ldots \approx 0.75$.
So the number is approximately $+0.75\cdot 2^{3}$.

Is everything correct?

The fraction actually always starts with $1$.
So it should be approximately $+1.75\cdot 2^3$. 🧐

mathmari said:
In this case we are looking for Two consecutive real (floating point). What does this mean? Do we find one number and then we just give also the next one?
We have 8 bytes for a total of 64 bits.
We are supposed to interpret them as 2 consecutive 32-bit floating point numbers.
So we first we decode the first 4 bytes to find a 32-bit floating point number.
And then we decode the last 4 bytes to find the second 32-bit floating point number. 🤔
 
  • #19
Klaas van Aarsen said:
We have 8 bytes for a total of 64 bits.
We are supposed to interpret them as 2 consecutive 32-bit floating point numbers.
So we first we decode the first 4 bytes to find a 32-bit floating point number.
And then we decode the last 4 bytes to find the second 32-bit floating point number. 🤔

So first we consider 0 10000010 11000110110000101010110 and then 01001110 01101111 01101001 01110100, right?

The first 8 bits are 01001110 (or do we consider again the first as the sign?) which is 78.
The exponent is in a biased form and 127 corresponds to zero.
So the actual exponent is 78-127=-49.
Then we get the fraction, which starts with 0110.

Is that correct so far? :unsure:
 
  • #20
mathmari said:
So first we consider 0 10000010 11000110110000101010110 and then 01001110 01101111 01101001 01110100, right?

Yep. (Nod)

mathmari said:
The first 8 bits are 01001110 (or do we consider again the first as the sign?) which is 78.
Indeed. The first bit is again the sign. The exponent comes after. 🤔
 
  • #21
Klaas van Aarsen said:
Indeed. The first bit is again the sign. The exponent comes after. 🤔

So we have the following :

0 10011100 1101111 01101001 01110100, right?

The sign is 0.
The first 8 bits are 10011100 which is 156.
The exponent is in a biased form and 127 corresponds to zero.
So the actual exponent is 156-127=29.
Then we get the fraction, which starts with 1101.
So the fraction is $1\cdot 2^{-1} + 1\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} +\ldots \approx 0.8125$
So the number is approximately $+0.8125\cdot 2^{29}$.

Is that correct? :unsure:
 
  • #22
mathmari said:
Then we get the fraction, which starts with 1101.
So the fraction is $1\cdot 2^{-1} + 1\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} +\ldots \approx 0.8125$
So the number is approximately $+0.8125\cdot 2^{29}$.

Is that correct?
The fraction always starts implicitly with $1$, so it should be $+1.8125\cdot 2^{29}$. 🤔
See the wiki page about IEEE floating point numbers.
 
  • #23
Klaas van Aarsen said:
The fraction always starts implicitly with $1$, so it should be $+1.8125\cdot 2^{29}$. 🤔
See the wiki page about IEEE floating point numbers.

Ahh ok! g) A real (floating point) where the most important digit is the sign of the number, the 15 most important digits after the sign is the exponent in a complement expression in relation to 2, and the rest is the measure of the coefficient, normalized with an implied integer unit in a small end series.

First we write all digits again next to each other :
01001110 01101111 01101001 01110100 01000001 01100011 01100001 01010110

The first digit is the sign, so 0.
The following 15 digits represent the exponent, 100111001101111, which is 20079, right?
I haven't really understood what the remaining digits are. Could you explain that to me?

:unsure:
 
  • #24
mathmari said:
g) A real (floating point) where the most important digit is the sign of the number, the 15 most important digits after the sign is the exponent in a complement expression in relation to 2, and the rest is the measure of the coefficient, normalized with an implied integer unit in a small end series.

The following 15 digits represent the exponent, 100111001101111, which is 20079, right?

The exponent is apparently a 2's complement number. In particular it means that the number is negative as the first bit is $1$. 🤔
mathmari said:
I haven't really understood what the remaining digits are. Could you explain that to me?
The remaining digits are "in a small end series". That means we have the reverse the bytes in the fraction.
Furthermore it is normalized with an implied integer unit. I think that it means that the fraction is implied to start with $1$ before the decimal point. Just like before. 🤔
 
  • #25
Klaas van Aarsen said:
The remaining digits are "in a small end series". That means we have the reverse the bytes in the fraction.
Furthermore it is normalized with an implied integer unit. I think that it means that the fraction is implied to start with $1$ before the decimal point. Just like before. 🤔

I have already reversed the bytes at the beginning at this subquestion, wasn't that correct?

First we write all digits again next to each other :
01001110 01101111 01101001 01110100 01000001 01100011 01100001 01010110

The first digit is the sign, so 0.
The following 15 digits represent the exponent, 100111001101111 (which is 20079). Do we take from here again the first digit to be the sign?

Which is the exponent e?

So the actual exponent is 20079-e.
Then we get the fraction, which starts with 0110.
So the fraction is $0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4} +\ldots \approx 0.375$
So the number is approximately $+1.375\cdot 2^{20079-e}$.

Or have I understood that wrongly? :unsure:
h) A string encoded based on the ASCII standard.


Do we have to use an ASCII conversion table and see the correspondence of the given $n_i$'s in ASCII ? :unsure:
 
  • #26
mathmari said:
I have already reversed the bytes at the beginning at this subquestion, wasn't that correct?

It says: "A real (floating point) where the most important digit is the sign of the number, the 15 most important digits after the sign is the exponent."
In other words, the first part is big endian.
We start with writing the digits next to each other as given (big endian).
Then we get the sign and the exponent (in big endian order).
Then we take the remaining bytes that comprise the fraction and reverse their order, since it also says: "rest is... in a small end series "
Then we decode fraction. 🤔

So we start with 01010110 01100001.
The sign bit is 0 for positive and the exponent is 101011001100001.
Then we reverse the order of all other bytes. 🤔

Furthermore, the exponent is (presumably) in 2's complement.
It means that it is negative, recognizable since the first bit is 1.
In 2's complement we have the usual positive numbers.
And we find a negative number by taking the bitwise complement and add 1.
It is designed so that if a negative number is added to the same positive number we get an overflow and end up with all zeroes as result. 🤔
So for instance in 4 bits we have that 1 is 0001, and -1 is 1110+1=1111.
Note that 0001+1111=10000. Since the topmost bit "falls off", we get 0000, which is 0 as desired. 🤔

mathmari said:
h) A string encoded based on the ASCII standard.

Do we have to use an ASCII conversion table and see the correspondence of the given $n_i$'s in ASCII ?
Yes.
Actually, we can also do it without a table, since in ASCII all capital letters are at 01000000 + the value of the letter (A=1, B=2, etcetera).
And all lowercase letters are at 01100000 + the value of the letter. 🤔
 
Last edited:
  • #27
a) An integer of 64 bits in the big end series.
$$n_0\cdot 256^7+n_1\cdot 256^6+n_2\cdot 256^5+n_3\cdot 256^4+n_4\cdot 256^3+n_5\cdot 256^2+n_6\cdot 256^1+n_7\cdot 256^0=86\cdot 256^7+97\cdot 256^6+99\cdot 256^5+65\cdot 256^4+116\cdot 256^3+105\cdot 256^2+111\cdot 256^1+78\cdot 256^0=6224365292779827022$$b) Two consecutive integers of 32 bits size in a small end row.
$$n_0 \cdot 256^0 + n_1 \cdot 256^1 + n_2 \cdot 256^2 + n_3\cdot 256^3 =86 \cdot 256^0 + 97 \cdot 256^1 + 99 \cdot 256^2 + 65\cdot 256^3=1097032022 \\ \text{ and } \\ n_4 \cdot 256^0 + n_5 \cdot 256^1 + n_6 \cdot 256^2 + n_7\cdot 256^3=116 \cdot 256^0 + 105 \cdot 256^1 + 111 \cdot 256^2 +78\cdot 256^3=1315924340$$c) A fixed-point number with 24 integers and 40 fractional digits in a small end row.
$$n_0\cdot 256^{-5}+n_1\cdot 256^{-4}+n_2\cdot 256^{-3}+n_3\cdot 256^{-2}+n_4\cdot 256^{-1}+n_5\cdot 256^{0}+n_6\cdot 256^{1}+n_7\cdot 256^{2}=86\cdot 256^{-5}+97\cdot 256^{-4}+99\cdot 256^{-3}+65\cdot 256^{-2}+116\cdot 256^{-1}+105\cdot 256^{0}+111\cdot 256^{1}+78\cdot 256^{2}=5.140329454122744811684242449700832366943359375 × 10^6$$d) One real (floating point) according to IEEE 754 standard of 64 bits in the big end series.
$$+0.19\cdot 2^{359}$$e) Two consecutive real (floating point) according to IEEE 754 standard of 32 bits in a small end series.
The firsat number is $+0.75\cdot 2^{3}$. The second number is $+1.8125\cdot 2^{29}$.Are these ones correct so far? :unsure: g) A real (floating point) where the most important digit is the sign of the number, the 15 most important digits after the sign is the exponent in a complement expression in relation to 2, and the rest is the measure of the coefficient, normalized with an implied integer unit in a small end series.

I reread this one and I think that "in a small end" goes for the whole sentence not just for the last digits. So is the way I started this one correct? :unsure: h) A string encoded based on the ASCII standard.

We have :

1631877086966.png


So do we write for each given $n_i$ the corresponding letter? :unsure:
 
  • #28
mathmari said:
a) An integer of 64 bits in the big end series.
$$n_0\cdot 256^7+n_1\cdot 256^6+n_2\cdot 256^5+n_3\cdot 256^4+n_4\cdot 256^3+n_5\cdot 256^2+n_6\cdot 256^1+n_7\cdot 256^0=86\cdot 256^7+97\cdot 256^6+99\cdot 256^5+65\cdot 256^4+116\cdot 256^3+105\cdot 256^2+111\cdot 256^1+78\cdot 256^0=6224365292779827022$$b) Two consecutive integers of 32 bits size in a small end row.
$$n_0 \cdot 256^0 + n_1 \cdot 256^1 + n_2 \cdot 256^2 + n_3\cdot 256^3 =86 \cdot 256^0 + 97 \cdot 256^1 + 99 \cdot 256^2 + 65\cdot 256^3=1097032022 \\ \text{ and } \\ n_4 \cdot 256^0 + n_5 \cdot 256^1 + n_6 \cdot 256^2 + n_7\cdot 256^3=116 \cdot 256^0 + 105 \cdot 256^1 + 111 \cdot 256^2 +78\cdot 256^3=1315924340$$c) A fixed-point number with 24 integers and 40 fractional digits in a small end row.
$$n_0\cdot 256^{-5}+n_1\cdot 256^{-4}+n_2\cdot 256^{-3}+n_3\cdot 256^{-2}+n_4\cdot 256^{-1}+n_5\cdot 256^{0}+n_6\cdot 256^{1}+n_7\cdot 256^{2}=86\cdot 256^{-5}+97\cdot 256^{-4}+99\cdot 256^{-3}+65\cdot 256^{-2}+116\cdot 256^{-1}+105\cdot 256^{0}+111\cdot 256^{1}+78\cdot 256^{2}=5.140329454122744811684242449700832366943359375 × 10^6$$

Looks about right. (Nod)

mathmari said:
d) One real (floating point) according to IEEE 754 standard of 64 bits in the big end series.
$$+0.19\cdot 2^{359}$$
I made a mistake before. The fraction should be $1.0001\ldots \approx 1.06$. 😊

mathmari said:
e) Two consecutive real (floating point) according to IEEE 754 standard of 32 bits in a small end series.
The firsat number is $+0.75\cdot 2^{3}$. The second number is $+1.8125\cdot 2^{29}$.

The first should be $+1.75\cdot 2^{3}$, since the fraction always starts with $1$. 🤔

mathmari said:
g) A real (floating point) where the most important digit is the sign of the number, the 15 most important digits after the sign is the exponent in a complement expression in relation to 2, and the rest is the measure of the coefficient, normalized with an implied integer unit in a small end series.

I reread this one and I think that "in a small end" goes for the whole sentence not just for the last digits. So is the way I started this one correct?

If the entire number is supposed to be little endian, then you started out correctly. :unsure:
mathmari said:
h) A string encoded based on the ASCII standard.

So do we write for each given $n_i$ the corresponding letter?
Yep. (Nod)
 
Last edited:
  • #29
For (g) :
mathmari said:
First we write all digits again next to each other :
01001110 01101111 01101001 01110100 01000001 01100011 01100001 01010110

The first digit is the sign, so 0.
The following 15 digits represent the exponent, 100111001101111 (which is 20079). Do we take from here again the first digit to be the sign?

Which is the exponent e?

So the actual exponent is 20079-e.
Then we get the fraction, which starts with 0110.
So the fraction is $0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4} +\ldots \approx 0.375$
So the number is approximately $+1.375\cdot 2^{20079-e}$.

Or have I understood that wrongly? :unsure:

Is that correct? Which is the exponent in this case? :unsure:

For (h) :
Klaas van Aarsen said:
Yep. (Nod)

01010110 represents in ASCII V
01100001 represents in ASCII a
01100011 represents in ASCII c
01000001 represents in ASCII A
01110100 represents in ASCII t
01101001 represents in ASCII i
01101111 represents in ASCII o
01001110 represents in ASCII N

So we get the string 'VacAtioN' , right? :unsure:
 
  • #30
mathmari said:
For (g) :

Is that correct? Which is the exponent in this case?

We found the exponent 100111001101111, which is a 2's complement number.
Since the first bit is 1, it is negative.
We take the complement and add 1 to make it positive.
That is 011000110010000+1=011000110010001.
Now we can find the number as usual, after which we need to put a $-$ sign in front of it. 🤔

mathmari said:
For (h) :

So we get the string 'VacAtioN' , right?
Yep. (Sun)
 
  • #31
Klaas van Aarsen said:
We found the exponent 100111001101111, which is a 2's complement number.
Since the first bit is 1, it is negative.
We take the complement and add 1 to make it positive.
That is 011000110010000+1=011000110010001.
Now we can find the number as usual, after which we need to put a $-$ sign in front of it. 🤔

So do we have the following ? First we write all digits again next to each other :

01001110 01101111 01101001 01110100 01000001 01100011 01100001 01010110

The first digit is the sign, so 0.

The following 15 digits represent the exponent, 100111001101111, which is a 2's complement number.

Since the first bit is 1, it is negative.

We take the complement and add 1 to make it positive.

That is 011000110010000+1=011000110010001, which corresponds to $12689$, so the exponent is $-12689$, right?

So is the actual exponent is $20079-(-12689)=32768$.

Then we get the fraction, which starts with 0110.

So the fraction is $0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4} +\ldots \approx 0.375$

So the number is approximately $+1.375\cdot 2^{32768}$. :unsure:
 
  • #32
mathmari said:
We take the complement and add 1 to make it positive.

That is 011000110010000+1=011000110010001, which corresponds to $12689$, so the exponent is $-12689$, right?
So is the actual exponent is $20079-(-12689)=32768$.

So the number is approximately $+1.375\cdot 2^{32768}$.
The exponent is $-12689$ instead.
We could also have calculated it by subtracting $32768$ from the $20079$ you found.
Note that $32768$ is $1000000000000000$ in binary, which is 16 bits. 🤔

So the number is approximately $+1.375\cdot 2^{-12689}$. 🤔
 
  • #33
Klaas van Aarsen said:
The exponent is $-12689$ instead.
We could also have calculated it by subtracting $32768$ from the $20079$ you found.
Note that $32768$ is $1000000000000000$ in binary, which is 16 bits. 🤔

So the number is approximately $+1.375\cdot 2^{-12689}$. 🤔

Ahh ok! I think I understood that now! Thank you very much! (Sun)
 

1. What is a computer system?

A computer system is a combination of hardware and software components that work together to perform tasks and process information. It includes the physical components such as the computer itself, peripherals, and input/output devices, as well as the programs and instructions that tell the computer what to do.

2. What are the main components of a computer system?

The main components of a computer system include the central processing unit (CPU), memory, storage devices, input/output devices, and software. The CPU is responsible for executing instructions and performing calculations, while memory stores data and instructions temporarily. Storage devices, such as hard drives and solid-state drives, store data long-term. Input/output devices allow users to interact with the computer, and software provides the instructions for the computer to follow.

3. What is the difference between hardware and software?

Hardware refers to the physical components of a computer system, such as the CPU, memory, and peripherals. Software, on the other hand, refers to the programs and instructions that tell the computer what to do. In simpler terms, hardware is the body of the computer, while software is the brain.

4. How does a computer system process information?

A computer system processes information by receiving input from the user or external sources, storing it in memory, processing it using the CPU, and then producing output through the use of output devices. This process is repeated continuously, allowing the computer to perform complex tasks and calculations.

5. What are the different types of computer systems?

There are several types of computer systems, including personal computers, laptops, tablets, smartphones, servers, and mainframes. Each type has its own unique features and capabilities, making them suitable for different purposes and tasks.

Similar threads

  • Programming and Computer Science
Replies
30
Views
4K
  • Programming and Computer Science
Replies
5
Views
5K
  • Engineering and Comp Sci Homework Help
Replies
7
Views
3K
  • DIY Projects
Replies
23
Views
4K
  • Programming and Computer Science
Replies
4
Views
7K
Replies
9
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
10
Views
3K
  • Computing and Technology
Replies
14
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
1K
Back
Top