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