Trabalho
Computadores/Introdução à Ciência de
Computadores
Calculadora binária
Departamento de Ciência de Computadores
Faculdade de Ciências, Universidade do Porto
2011
Nota: para os alunos de Introdução aos Computadores a linguagem de programação a usar é o C, e para os de Introdução à Ciência de Computadores poderá ser Python.
1
Calculadora binária
Pretende-se que escreva um programa que implemente uma calculadora que opere em binário. O programa deverá:
1. receber três argumentos da linha de comando: o 1o operando, o operador e o 2o operando; os operandos são sequências de bits (0 ou 1) com no máximo 8 bits; o operador pode ser + ou - (para somar ou subtrair, respetivamente); 2. efetuar a operação indicada usando representação em complemento para dois com 8 bits;
3. imprimir o resultado (também em binário) na saída padrão.
4. indicar um mensagem de erro quando se verificar overflow no resultado da operação.
Exemplos
$ calc 101 + 111
00001100
$ calc 101 - 111
11111110
$ calc 1111111 + 111
00001010
ERRO: overflow
1
2
Extensão
Leitura e escrita em hexadecimal e octal O programa deve aceitar opções
-o e -x para indicar que os operandos e o resultado deverão ser escritos em octal ou hexadecimal, respetivamente.
Exemplos
$ calc
014
$ calc
176
$ calc
0c
$ calc fe 3
-o 5 + 7
-o 5 - 7
-x 5 + 7
-x 5 - 7
Algumas Sugestões
Para escrita do programa em C considere:
• Os argumentos do comando devem ser passados à função main usando os parametros argc e argv: int main(int argc,char *argv[]). Deve ser escrita uma mensagem de erro se o comando não for chamado com 3 argumentos. • Os operandos serão obtitos como strings e deverão ser convertidos para vetores de inteiros (de tamanho 8), de modo que o indice menor corresponda ao bit menos significativo (i.e com os bits invertidos relação à escrita normal). Se o operando tiver menos de 8 bits deverão ser colocados zeros nas restantes