0% found this document useful (0 votes)
35 views4 pages

Comp1411 Assign1

The document contains an individual assignment for the COMP1411 course. It includes 4 questions about bitwise operations, floating point number conversions, and rewriting mathematical expressions using bitwise operators. Students are asked to show their work and provide answers in C code, hexadecimal, or binary representations as required.

Uploaded by

alibekuantkhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views4 pages

Comp1411 Assign1

The document contains an individual assignment for the COMP1411 course. It includes 4 questions about bitwise operations, floating point number conversions, and rewriting mathematical expressions using bitwise operators. Students are asked to show their work and provide answers in C code, hexadecimal, or binary representations as required.

Uploaded by

alibekuantkhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

COMP1411 (Spring 2021) Introduction to Computer Systems

Individual Assignment 1 Due Date: 10:00am, 8th March, 2021

Name
Kuantkhan Alibek
Student number
20041645d

Question 1. [20 marks]


Suppose that x and y are unsigned integers.
Rewrite the following C-language statement by using << and -.
y = x * 50;
Introducing new variables (other than x and y) is not allowed.
Show your steps.

Answer:

y = x*50 = x*(64 - 8 - 4 - 2)

y = 64x-8x-4x-2x = x<<6 - x<<3 - x<<2 - x<<1


Question 2. [30 marks]
Suppose that x, y and z are all 32-bit unsigned integers.
(1) Write C-language statements to set the value of z, such that the left-most 14 bits of z are the
same as the left-most 14 bits of x, and the right-most 18 bits of z are the same as the right-
most 18 bits of y.
No that you are only allowed to use bit shift operations and logic operations (including bit-
wise operators, such as | ^ &) to set the value of z; no arithmetic or if-then-else test (in any
form) is allowed; introducing new variables (other than x, y and z) is NOT allowed.
(2) If x = 0x3B1A4359 and y = 0x2585B4C7, what the be the resulting value of z?
Please write the value of Z in hex-decimal form starting with 0x.
Show your steps.

Answer:

1. x = x>>18
x = x<<18
y = y<<14
y = y>>14
z=((not_z | (y | x)) & (z | (y | x))

2. 00111011000110100100001101011001 = 3B1A4359 (32bit)

00100101100001011011010011000111 = 2585B4C7 (32bit)

x = x>>18 (00000000000000000000111011000110)

x = x<<18 (00111011000110000000000000000000)

y = y<<14(01101101001100011100000000000000)

y = y>>14(00000000000000011011010011000111)

z=((not_z | (y | x)) & (z | (y | x)) (00111011000110011011010011000111)

z = 00111011000110011011010011000111 = 991540423 = 0X3B19B4C7


Question 3. [25marks]
Convert the following IEEE single-precision floating point number (32-bit)
1 01111110 10110110000000000000000
to a decimal number.
Show your steps.

Answer:
1 01111110 10110110000000000000000
sign = 1 => (-1)^1
exp = 126
bias = 127
e = 126 - 127 = -1
mantissa = 1 + 2^-1 + 2^-3 + 2^-4 + 2^-6 + 2^-7 = 1.7109375
result = -1 * 1.7109375 *1/2 = -0,85546875
Question 4. [25 marks]
Convert the decimal number 77.61328125 into IEEE single-precision floating point number (32-
bit).
Show your steps.

Answer:

dec = 77.61328125
sign = 0
bin = 1001101.10011101 = 1.00110110011101 * 2^6
e=6
exp = 6 + 127 = 133
133(bin) = 10000101
IEEE754 = 0 10000101 00110110011101000000000

You might also like