ACH2034 – Primeira Lista de Exercícios
Questão 1. Faça as conversões de base pedidas, mostrando as divisões/multiplicações efetuadas, caso sejam necessárias. Para bases múltiplas/submúltiplas, faça a conversão usando
agrupamento de dígitos.
(a) (1010)2 p/ base 10
(d) (1518)10 p/ base 7
(f) (11,8125)10 p/ base 2
(i) (1011,1101)2 p/ base 16
(`) (dead,beef)16 p/ base 10
(b) (11101110)2 p/ base 10
(e) (134)10 p/ base 2
(g) (57,55)10 p/ base 2
(j) (1011,1101)2 p/ base 8
(c) (1001,1101)2 p/ base 10
(f) (0,7)10 p/ base 2
(h) (80,90625)10 p/ base 2
(k) (dead,beef)16 p/ base 2
Questão 2. Efetue as operações abaixo na base binária. Para as subtrações, faça as contas
duas vezes: usando o algoritmo padrão de subtração (com “empréstimos”) e fazendo a conta
usando complemento a 2.
(a) 10001 + 1111
(d) 11010,1 + 10110,01 + 111,1110
(g) 100000 − 11100
(j) 11001 × 101
(m) 111,10 × 1,00101
(p) 11111101/1011
(s) 110010101/100
(b) 1110 + 1001011
(e) 1100 + 1001011 + 11101
(h) 1011,001 − 11,011
(k) 11110 × 110
(n) 10000001/101
(q) 110010101/1001
(t) 1011010101/11
(c) 10,11 + 11100
(f) 10101 − 1110
(i) 1011,001 − 1101,011
(`) 11110 × 111
(o) 1001010010/1011
(r) 1001111100/1100
Considere o seguinte formato para os números em ponto flutuante nas questões a seguir:
s
em−1
...
e0
qn−1
...
q0 , onde
i. s é o sinal da mantissa;
ii. qn−1 . . . q0 é a fração representada em sinal-magnitude (n bits);
iii. em−1 . . . e0 é o expoente (m bits), representado em excesso de N ;
iv. caso o expoente seja 0 . . . 0 (apenas zeros), então a fração qn−1 . . . q0 representa o número
inteiro (qn−1 . . . q0 )2 , acrescido do sinal indicado por s (valor não normalizado);
v. o expoente 1 . . . 1 (apenas uns) é reservado, e não pode ser usado para representar números;
Questão 3. Converta os números abaixo para a base 2 e represente-os no formato pedido (não
é necessário mostrar as divisões/multiplicações feitas para a conversão).
(a) 0 (zero) como inteiro sem sinal em uma palavra de 8 bits
(b) +0 (zero positivo) como inteiro com sinal, em sinal-magnitude, em uma palavra de 8 bits
(c) −0 (zero negativo) como inteiro com sinal, em sinal-magnitude, em uma palavra de 8 bits
(d) 0 (zero) como inteiro com sinal, em complemento a dois, em uma palavra de 8 bits
1
(e) 0 (zero) como inteiro com sinal, em excesso de N , em uma palavra de 8 bits
(f) +0 (zero positivo) como ponto flutuante, com 6 bits para a fração e 5 bits para o expoente
(g) −0 (zero negativo) como ponto flutuante, com 6 bits para a fração e 5 bits para o expoente
(h) 117 como inteiro sem sinal em uma palavra de 8 bits
(i) 117 como inteiro com sinal, em sinal-magnitude, em uma palavra de 8 bits
(j) 117 como inteiro com sinal, em complemento a dois, em uma palavra de 8 bits
(k) 117 como inteiro com sinal, em excesso de N , em uma palavra de 8 bits
(l) 117 como ponto flutuante, com 6 bits para a fração e 5 bits para o expoente
(m) −117 como inteiro com sinal, em sinal-magnitude, em uma palavra de 8 bits
(n) −117 como inteiro com sinal, em complemento a dois, em uma palavra de 8 b its
(o) −117 como inteiro com sinal, em excesso de N , em uma palavra de 8 bits
(p) −117 como ponto flutuante, com 6 bits para a fração e 5 bits para o expoente
Questão 4. (a) Liste todos os números positivos em ponto flutuante (a palavra em binário e
o valor correspondente em decimal) que podem ser representados com 1 bit para o sinal, 3 bits
para o expoente e 2 bits para a fração, usando o formato especificado no início da lista. (b) O
que se pode dizer sobre os números negativos?
Questão 5. (a) Expresse os números
6,022 × 1023 = (0,0111111110000101010101)2 × 280 (constante de Avogadro) e
6,626 × 10−34 = (1,1011100001100000101101)2 × 2−111 (constante de Planck)
(onde a mantissa está na base 2 e os expoentes estão na base 10) como palavras binárias de
32 bits que representem um número de ponto flutuante com 23 bits para a fração, 8 bits para
o expoente e 1 bit para o sinal da mantissa, no formato especificado no início da lista. Não é
necessário mostrar as conversões de base, apenas o resultado da conversão.
(b) agora, considere as palavras de 32 bits, obtidas após a conversão para o formato especificado acima, como números inteiros sem sinal. Converta-as para números em hexadecimal.
(c) o que faz o programa em Java abaixo? o que significa o resultado da execução do
programa que é exibido na tela?
public class Programa1
{
public static void main(String args[])
{
int x = 0x66FF0AA8;
float f = Float.intBitsToFloat(x);
System.out.println(f);
}
}
2
(d) troque a constante 0x66FF0AA8 no programa acima por 0x085C305A. Recompile o programa e execute. O que significa o resultado da execução do programa?
(e) com base nas perguntas (a-d) acima, o que podemos dizer sobre o tamanho da palavra
que representa um int em Java? E um float? Como é a representação de um número de
ponto flutuante do tipo float em Java?
(f) pesquise e explique como é a representação de um número do tipo double em Java.
3
Download

Lista 1