Table of Contents

1. Introduction to the labs, computer number formats, numeral systems, entrance test

Exercise outline

  1. requirements and evaluations
  2. laboratory and computer system introduction
  3. basic data types (integer number) storage in computer memory, program in C
  4. integer representation, addition, subtraction, multiplication, division
  5. real number represetation (in IEEE 754)

What should I repeat before the first exercise

  1. binary representation and hexadecimal numbers
  2. C language syntax
  3. terms little and big endian
  4. the second complement code
  5. logic operations (and, or, invert, rotation, …)
  6. two's complement code and IEEE 754.
  7. to understand the program from the last class.

What shall we do on the first exercise

Aim of this exercise is to get familiar with classroom, to repeat some basic terms and number representation in computer systems.

The exercise will be based on following C code. It prints number representation in computer memory. We shall modify the code during the class.

#include <stdio.h>

#define PRINT_MEM(a) print_mem((unsigned char*)&(a), sizeof(a))

void print_mem(unsigned char *ptr, int size) {
  int i;
  printf("address = 0x%08lx\n", (long unsigned int)ptr);

  for (i = 0; i < size; i++) {
    printf("0x%02x ", *(ptr+i));
  }

  printf("\n");
}

int main() {
  unsigned int unsig = 5;
  int sig = -5;

  printf("value = %d\n", unsig);
  PRINT_MEM(unsig);

  printf("\nvalue = %d\n", sig);
  PRINT_MEM(sig);

  return 0;
}

To compile the program: gcc -Wall -ansi -pedantic ./program.c

Tasks

  1. Compile and execute program above
    • Explain output of the program
    • Alter the code to print representation of other data types (float, char, double, long, etc…)
    • Alter the code to print numbers and their representation between -16…15.
    • Modify the program to add and subtract integer numbers and print arguments and results (in “normal” form and computer representation).
    • Try to add and subtract negative and positive numbers. Try to cause integer overflow and underflow.
  2. Integer addition and subtraction in two's complement representation
    • add and subtract two integer numbers. For example 5+(-6) and 5-(-6).
    • repeat the operations with different numbers and check your results with the computer program from the first exercise.
    • When the underflow and overflow can happen? How can we detect, that it had occured?
  3. Integer multiplication
    • multiply two integers, For example 7*6.
    • is there any difference when multiplying negative numbers? (e.g. -7*6, (-7)*(-6), etc…)
    • show how to speed-up the multiplier? (use many adders instead repetitively using one).
  4. Integer division
    • divide integers 42/7, 43/7
    • does the algorithm change when we use negative numbers?
  5. Real number representation (IEEE 754)
    • binary representation of real numbers (float - 32bit, double - 64bit)
    • show binary representation of -0.75. Check your result with program from the last exercise.
    • find decimal number for float binary number 0xC0A00000 in IEEE754.
    • explain who to add numbers 9.999*10^1 and 1.1610*10^(-1) in decimal representation. Assume that it is possible to store only 4 digits in mantisa and 2 digits in exponent.
      • Hint: 1) align numbers 2) addition 3) normalization 4) round numbers.
    • in binary representation add 0.5 and -0.4375
    • in decimal representation show multiplication of 1.110*10^10 * 9.200*10^(-5)
    • in binary representation multiply 0.5 and -0.4375

Homeworks

Computer network in lab KN:E-307

In this semester we have started a new OS installation that allows students to work with their home directories. After the computer is turned on a boot loader menu pops up and you can choose of:

Logins and passwords

The computer access and logins are authenticated against Kerberos server of Department of Computer Sciences.

A password for access to GNU-Linux workstations at Department of Computer Sciences can be set on a page http://www.felk.cvut.cz/?setLang=en , from a section IT services at Charles Square

Set up the password for laboratories KN:E-307, KN:E-310, KN:E-311, KN:E-331, T2:H1-130, T2:H1-131.

Remote access to your data

The data in your home dictories are also available in rooms KN:E-2 and KN:E-s109 and are also accessible on server postel.felk.cvut.cz via SSH protocol. In Linux OS you can mount your home directories even from your home computer using sshfs utility (for example sshfs jmeno@postel.felk.cvut.cz /mnt/tmp).

Troubleshooting, data recovery

In the case of problem with computers or network, please, contact Ing. Petr Benda (petr.benda@fel.cvut.cz) responsible for K13136 computers infrastructure.