Bits e operações. Sistemas de Computação

Tamanho: px
Começar a partir da página:

Download "Bits e operações. Sistemas de Computação"

Transcrição

1 Bits e operações

2 Porque utilizar base 2? Representação na base 10 Estamos acostumados Representação natural para transações financeiras (precisão) Implementação eletrônica na base 10 Difícil de armazenar Difícil de codificar 10 níveis de tensão em um único fio Difícil de implementar operações básicas (soma, multiplicação etc.)

3 Representação Binária Circuitos eletrônicos trabalham com tensões com valores analógicos, podendo assumir qualquer valor nos limites permitidos Ex: Alimentação de 0 a 5 V, valores de 3,67 V, 0,5 V Circuitos digitais partem de circuitos eletrônicos e identificam apenas dois valores: 0 e 1 Uma faixa de valores é definida como 1 e outra como 0 Ex: Tecnologia TTL: 2-5V 1, 0-0,8 V 0

4 Representação Binária Vantagens: Fácil de armazenar em elementos biestáveis Precisão pode ser menor 2,8V e 3,3 V correspondem a 1 Implementação mais fácil das operações aritméticas Números de bits necessários para expressar N coisas diferentes é K, onde K é o menor número tal que 2 K N Ex: Qual a cor do seu cabelo (preto,castanho,louro e ruivo)? 4 opções, 2 K 4, K=2, 2 bits, 00(preto), 01(castanho), 10(louro), 11(ruivo)

5 Organização da memória Computadores acessam grupos de bits de uma vez Menor unidade de endereçamento 1 byte = 8 bits Programa em linguagem de máquina enxerga a memória como um grande array de bytes, denominado memória virtual Cada byte de memória possui um endereço associado a ele e o conjunto de endereços é conhecido como espaço de endereçamento virtual

6 Organização da memória Este espaço é implementado por uma combinação de elementos: SRAM, DRAM, disco e sistema operacional No Unix e Windows, espaço de endereçamento privativo de um processo particular Tarefas do compilador e sistema de execução Alocar e gerenciar onde os programas executáveis devem ser armazenados Vários mecanismos: estático, stack e heap A alocação é sempre realizada dentro de um único espaço de endereçamento virtual

7 Representação Hexadecimal Representação binária requer muitos 1s e 0s 8 bits: a Representação hexadecimal é um sistema baseado na base 16 Requer 16 dígitos diferentes: 0 a 9, A a F Cada dígito hexadecimal representa 4 bits de número representado em binário 8 bits: a FF 16

8 Conversão entre Bases 2 e 10 Números são representados utilizando-se a base , número binário cujo valor decimal é 5 Valor de um número decimal: D D D , D 0 = 3, D 1 = 0, D 2 = =903 Valor decimal de um número binário: B B B , B 0,, B 1,B 3, B 4, B = = 283

9 Conversão entre Bases Um computador possui uma unidade básica de informação de 12 bits. Quantos números podem ser representados por essa unidade básica e quais são eles?

10 Conversão entre Base 10 e 2 1. Dividir número decimal por 2 e colocar o resto como o algarismo menos significativo 2. Enquanto o quociente for diferente de Dividir o quociente por Colocar o resto à esquerda do anterior 2.3 Volte ao passo 2

11 Representação de Números em Base 16, 10 e 2 Dígito hexadecimal Valor decimal Valor binário A B C D E F

12 Conversão entre as Base 2 e = 2 4 Um algarismo hexadecimal é representado por 4 bits Divide-se o número binário em grupos de 4 bits da direita para a esquerda e substitui-se o algarismo hexadecimal correspondente ao grupo Ex: ( ) 2 (0010)(1101)(1011) 2 =(2DB) 16 2 D B

13 Conversão entre as Base 16 e 2 Substitui-se cada algarismo hexadecimal pelo grupo de 4 bits correspondente Ex: (306) 16 (0011)(0000)(0110) 2 =( )

14 Conversão entre Bases 16 e 10 Valor decimal de um número hexadecimal: H H H Ex: (2A5) 16 = = = (677) 10

15 Conversão entre Base 10 e Dividir número decimal por 16 e colocar o resto como o algarismo menos significativo 1. Enquanto o quociente for diferente de Dividir o quociente por Colocar o resto à esquerda do anterior 2.3 Volte ao passo 2

16 Palavras utilizadas nas máquinas Cada máquina possui um tamanho de palavra Define o maior tamanho de inteiro da máquina incluindo endereços A maioria das máquinas possui uma palavra de tamanho igual a 32 bits Limita endereçamento a 4GB Estão aparecendo sistemas com tamanho de palavra de 64 bits Capacidade de endereçamento de aproximadamente 1, bytes

17 Organização da memória orientada a palavra Endereços especificam localizações de bytes endereço do primeiro byte da palavra endereços de palavras sucessivas diferem por 4 (32- bit) ou 8 (64-bits) Palavra de 32 bits End. = 0000 End. = 0004 End. = 0008 End. = 0012 Palavra de 64 bits End. = 0000 End. = 0008 Bytes Endereços

18 Representação de dados As máquinas suportam múltiplos formatos de dados Utilizam frações ou números múltiplos do tamanho da palavra Sempre um número inteiro de bytes Tamanhos de objetos em C (em bytes) Declaração em C 32-bit típico Compaq Alpha char 1 1 short int 2 2 int 4 4 long int 4 8 char * 4 8 float 4 4 double 8 8

19 Ordenação dos bytes Como os bytes de uma palavra multibytes devem ser ordenados na memória? PCs são máquinas Little Endian O byte menos significativo possui o menor endereço Suns, Macs são máquinas Big Endian O byte menos significativo possui o maior endereço

20 Ordenação dos bytes Exemplo: Variável X possui a representação 0x Endereço de X é 0x100 Big endian 0x100 0x101 0x102 0x Little endian 0x100 0x101 0x102 0x

21 Examinando representação de dados Código para imprimir a representação de dados Associa a um ponteiro o tipo unsigned char * cria um array de bytes typedef unsigned char *byte_pointer; void show_bytes(byte_pointer start, int len) { int i; for (i=0; i<len; i++) printf("%p\t%.2x\n", start+i,start[i]); printf("\n"); }

22 Examinando representação de dados int a = 15213; printf("int a = 15213;\n"); show_bytes((byte_pointer) &a, sizeof(int); Resultado: int a = 15213; 11ffffcb8 6d 11ffffcb9 3b 11ffffcba 00 11ffffcbb 00

23 Representando inteiros int A = 15213; Decimal: Binário: Hexa: 3 B 6 D Alpha, Linux, NT Sun 6D 3B B 6D

24 Representando ponteiros int A = int *P = &A Endereço Alpha Hexa: 1 F F F F F C A 0 Bin.: A0 FC FF FF Endereço Sun Hexa: E F F F F B 2 C Bin.: EF FF FB 2C

25 Representando floats float A = 15213,0; Alpha, Linux, NT Sun 00 B4 6D D B4 00 Representação em ponto flutuante padrão IEEE Hexa: D B Binário:

26 Representando strings em C Representados como um array de caracteres Cada caracter no formato ASCII codificação 7-bit caracter 0 tem o cód. 0x30 dígito i tem cód. 0x30+i char *S= Alpha, Linux, NT Sun Último caracter é o caracter nulo Sem problemas de ordenação de bytes, pois o dado é um byte Arquivos texto geralmente independentes de plataforma

27 Representação de código de máquina O programa é codificado como uma seqüência de instruções Operações simples: aritméticas, leitura ou escrita da memória, desvio condicional Instruções codificadas em bytes Alpha, Sun,Mac utilizam instruções de 4 bytes (RISC) PC utiliza instruções de tamanho variável (CISC) Tipos de instruções e codificação diferentes para máquinas diferentes código binário não compatível

28 Representando instruções int sum (int x, int y) { } return x+y; Alpha e Sun utilizam 2 instruções de 4 bytes PC utiliza 7 instruções de 1, 2 e 3 bytes estruturas do programa em NT e Linux diferentes Alpha Sun PC FA 6B 81 C3 E E5 8B 45 0C EC 5D C3

29 Álgebra booleana Desenvolvida por George Boole no século 19 aplicada por Claude Shannon em sistemas digitais (1937) Representação algébrica da lógica codifica VERDADEIRO como 1 e FALSO como 0 Operações : AND: A & B=1 somente quando A=1 e B=1 OR: A B 1 quando A=1 ou B=1 NOT: ~A=1 quando A=0 XOR= A^B=1 quando A=1 ou B=1, mas não ocorre quando ambos iguais a 1

30 Álgebra booleana Pode operar em vetores de bits & ^ ~ Representação de conjuntos Um vetor com w bits representa os subconjuntos {0,...,w} e a j =1 se j A {0,3,5,6} {0,2,4,6} & Interseção {0,6} União {0,2,3,4,5,6} ~ Complemento {1,3,5,7}

31 Operações com bits em C Operações &,, ~,^disponíveis em C Se aplicam a qualquer tipo inteiro: long, int, short, char Tratam os argumentos como vetores de bits Exemplos (tipo char) ~0x41 0xBE x69 & 0x55 0x & x69 0x55 0x7D

32 Operações com bits em C Rotina para trocar os valores armazenados nos endereços estipulados pelas variáveis do tipo ponteiro x e y void troca(int *x, int *y) { *x = *x ^ *y; /* 1 */ *y = *x ^ *y; /* 2 */ *x = *x ^ *y; /* 3 */ } Passo *x *y Início A B 1 A^B B 2 A^B (A^B)^B=A^(B^B)= A^0=A 3 (A^B)^A=(B^A)^A= A B^(A^A)=B^0=B Final B A

33 Operações lógicas em C Operações &&,,! disponíveis em C Tratam 0 como FALSO Qualquer coisa diferente de 0 é VERDADEIRO Sempre retorna 1 ou 0 Exemplos (tipo char)!0x41 0x00!0x00 0x01!!0x41 0x01 0x69 && 0x55 0x01 0x69 0x55 0x01

34 Operações de deslocamento em C Deslocamento à esquerda: x << y desloca o vetor de bits x, y posições para a esquerda joga fora os bits deslocados da esquerda preenche os bits da direita com 0s Deslocamento à direita: x >> y desloca o vetor de bits x, y posições para a direita joga fora os bits deslocados da direita preenche os bits da esquerda com 0s para desl. lógico preenche os bit da esquerda com o bit mais à esquerda que sobrou para desl. aritmético Argumento x << Log. >> Aritm. >> Argumento x << Log. >> Aritm. >>

Representação de Dados

Representação de Dados Representação de Dados Representação binária Exemplo: 15213 10 11101101101101 2 Vantagens: Implementação eletrônica Possibilidade de armazenar elementos com dois estados Transmissão eletrônica confiável

Leia mais

Representação de Dados (inteiros não negativos)

Representação de Dados (inteiros não negativos) Representação de Dados (inteiros não negativos) 1 Memória Armazena instruções e dados durante a execução de um programa A memória principal pode ser vista como um array de bytes, cada um com seu endereço

Leia mais

Representação de Dados (inteiros não negativos)

Representação de Dados (inteiros não negativos) Representação de Dados (inteiros não negativos) Noemi Rodriguez Ana Lúcia de Moura http://www.inf.puc-rio.br/~inf1018 Memória Pode ser vista como um array de bytes, identificados por seus "índices" (endereços)

Leia mais

Linguagem de Montagem Assembly

Linguagem de Montagem Assembly Linguagem de Montagem Assembly Especificações O programa em Assembly Fica sobre a camada do Sistema Operacional Efetua chamadas ao Sistema Operacional O montador Chama-se Assembler Traduz a linguagem de

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Aula de Revisão: Variáveis e Atribuições Introdução Memória Principal: Vimos no curso anterior que a CPU usa a memória

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos

Leia mais

Computação e Programação

Computação e Programação Computação e Programação 1ª Aula de 2008-2009 Instituto Superior Técnico, Dep. de Engenharia Mecânica - Sistemas O Visual C++ Para Casa (se possível antes da aula!): Veja o video e o screencast que se

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

1 Sistemas de numeração

1 Sistemas de numeração 1 Sistemas de numeração Utilizar a notação decimal é interessante para nós seres humanos, principalmente pela associação com o número de dedos. Porém para o computador a manipulação de dados através dessa

Leia mais

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária Programação de Computadores O Computador Memória Principal representação binária Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Memória principal. Memória secundária. O que são bytes e bits. Tecnologias

Leia mais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Modificadores de Tipos Os tipos de dados básicos em C podem estar acompanhados por modificadores na declaração de variáveis. Tais modificadores

Leia mais

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções Arquiteturas de Computadores Princípios e exemplos de conjuntos de instruções Características das aplicações Computação de desktop Ênfase em desempenho de programas com tipos de dados inteiros e ponto-flutuante

Leia mais

1/50. Conceitos Básicos. Programa Básico

1/50. Conceitos Básicos. Programa Básico 1/50 Conceitos Básicos Programa Básico 2/50 Operações básicas de entrada e saída #include main retorna um inteiro int main() { std::cout

Leia mais

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

Sistemas de Numeração

Sistemas de Numeração Sistemas de Numeração Objetivos Conhecer representações numéricas para inteiros positivos (naturais) nas bases binária, hexadecimal e octal. Generalizar representações para qualquer base. Manipular fluentemente

Leia mais

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 1. Um programa P foi compilado com um compilador

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 10 Conjuntos de instruções: Características e funções slide 1 O que é um conjunto de instruções? A coleção completa de instruções

Leia mais

Operadores e Expressões: bit-a-bit e especiais

Operadores e Expressões: bit-a-bit e especiais Operadores e Expressões: bit-a-bit e especiais Objetivos Em C, OPERADORES e EXPRESSÕES podem ser classificados em cinco grande categorias: Atribuições Aritméticos Lógicos e Relacionais Bit-a-Bit Especiais

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Disciplina: Introdução à Engenharia da Computação

Disciplina: Introdução à Engenharia da Computação Colegiado de Engenharia de Computação Disciplina: Introdução à Engenharia da Computação Aula 07 (semestre 2011.2) Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc. rosalvo.oliveira@univasf.edu.br 2 Representação

Leia mais

Representação de Dados (inteiros não negativos)

Representação de Dados (inteiros não negativos) Representação de Dados (inteiros não negativos) 1 Memória Armazena instruções e dados durante a execução de um programa A memória principal pode ser vista como um array de bytes, cada um com seu endereço

Leia mais

ALOCAÇÃO DINÂMICA DE MEMÓRIA

ALOCAÇÃO DINÂMICA DE MEMÓRIA INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador

Leia mais

Dados estruturados. Sistemas de Computação

Dados estruturados. Sistemas de Computação Dados estruturados Alocação de arrays TA[L]: Array com elementos do tipo T e tamanho L Região de tamanho L * sizeof(t) bytes alocada contiguamente char string[12]; int val[5]; double a[4]; x x + 12 x x

Leia mais

Engenharia Civil. Representação da Informação. Introdução à Computação

Engenharia Civil. Representação da Informação. Introdução à Computação Engenharia Civil Representação da Informação Introdução à Computação Sumário Retomada... Representação de informação Bit, byte Conversão numérica Exercício Referência link na página 2.2.1 O bit, o byte,

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Sistemas de Numeração. Tiago Alves de Oliveira

Sistemas de Numeração. Tiago Alves de Oliveira Sistemas de Numeração Tiago Alves de Oliveira Sumário Sistemas Numéricos Binário Octal Hexadecimal Representação Interna de Caracteres Sistemas Numéricos Sistemas numéricos Sistemas de notação usados para

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro

Leia mais

4 Variáveis. Unesp Campus de Guaratinguetá

4 Variáveis. Unesp Campus de Guaratinguetá 4 Variáveis Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante Composição do Hardware MEMÓRIA UNIDADES FUNCIONAIS

Leia mais

Estrutura de Dados Conceitos Iniciais

Estrutura de Dados Conceitos Iniciais Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 01 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Leia mais

Expoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Expoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 Data de entrega 16/09/2016 por e-mail (simone@ic.uff.br)

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1 Linguagem C: Variáveis e Operadores Prof. Leonardo Barreto Campos Sumário Variáveis: Tipos de variáveis; Nome da variável; Palavras reservadas; A função printf(); A função scanf(); Variáveis locais; Variáveis

Leia mais

Aula Expositiva 2. DCC 001 Programação de Computadores. 2º Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC

Aula Expositiva 2. DCC 001 Programação de Computadores. 2º Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC UFMG DCC001 2011-2 1 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas lógicas 2.2.5 Síntese de Circuitos Combinatórios

Leia mais

Elementos Básicos. C# - Elementos básicos. Primeiro programa Tipos de dados Variáveis Constantes Expressões e operadores Controlo de fluxo Tabelas

Elementos Básicos. C# - Elementos básicos. Primeiro programa Tipos de dados Variáveis Constantes Expressões e operadores Controlo de fluxo Tabelas C# - Elementos básicos Daniela da Cruz 2010 Elementos Básicos Primeiro programa Tipos de dados Variáveis Constantes Expressões e operadores Controlo de fluxo Tabelas Linguagens de Programação - Daniela

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Cap. 2 Expressões na linguagem C

Cap. 2 Expressões na linguagem C Programação de Computadores II Cap. 2 Expressões na linguagem C Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (24) Slides adaptados dos originais

Leia mais

FCA - Editora de Informática xv

FCA - Editora de Informática xv Índice Geral Agradecimentos ix Prefácio xi Índice das Simulações xxv 1 - Introdução ao mundo dos computadores 1 1.1 O computador como ferramenta... 2 1.2 A importância dos computadores... 4 1.3 Processamento

Leia mais

INTRODUÇÃO À LINGUAGEM C

INTRODUÇÃO À LINGUAGEM C INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2017) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas

Leia mais

Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo

Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo Nível da Arquitetura do Conjunto de Instruções Ronaldo de Freitas Zampolo Tópicos Introdução Visão geral do nível ISA Tipos de dados Formatos de instruções Endereçamento Tipos de instruções Fluxo de controle

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador

Leia mais

Tópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte

Tópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte Tópicos de hoje: Programação de Computadores II Cap. Expressões na linguagem C Bits, s e Palavras Variáveis e constantes Operadores e expressões Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel.

Leia mais

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

INTRODUÇÃO À LINGUAGEM C

INTRODUÇÃO À LINGUAGEM C INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima

Leia mais

Expressões lógicas, expressões condicionais, prioridades e operadores, base binária, operadores de bits

Expressões lógicas, expressões condicionais, prioridades e operadores, base binária, operadores de bits Expressões lógicas, expressões condicionais, prioridades e operadores, base binária, operadores de bits Equivalência entre valores lógicos e aritméticos Quando uma expressão lógica é calculada dentro do

Leia mais

Sistemas de Numeração. Exemplos de Sistemas de Numeração (1) Exemplos de Sistemas de Numeração (2) Sistemas de Numeração

Sistemas de Numeração. Exemplos de Sistemas de Numeração (1) Exemplos de Sistemas de Numeração (2) Sistemas de Numeração Sistemas de Numeração Sistemas de Numeração (Aula Extra) Sistemas de diferentes bases Álgebra Booleana Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 27/2 Um sistema de numeração

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES 1 CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA Quando um programador usa uma linguagem de alto-nível, como C, muito pouco da arquitetura da máquina é visível. O usuário que deseja programar

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Representação de Dados Arrays e Structs

Representação de Dados Arrays e Structs Representação de Dados Arrays e Structs Noemi Rodriguez Ana Lúcia de Moura http://www.inf.puc-rio.br/~inf1018 Representação de Arrays C usa uma implementação bastante simples alocação contígua na memória

Leia mais

Nomes de variáveis Todo nome de variável deve iniciar com uma letra ou sublinha _.

Nomes de variáveis Todo nome de variável deve iniciar com uma letra ou sublinha _. Prof. Alceu Britto Material feito por Prof. Dr. Edson J. R. Justino (PUCPR) Aula Prática 03 e 04 UEPG Nomes de variáveis Todo nome de variável deve iniciar com uma letra ou sublinha _. Ex.: nome _nome

Leia mais

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Como representar números em memória? Como representar números negativos e de ponto flutuante?

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária Universidade Federal de Uberlândia Faculdade de Computação Representação e aritmética binária Prof. Renato Pimentel 1 Tipos de informação Representação por meio de sequências binárias: 8 bits (byte) Também

Leia mais

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 1 Conceitos necessários Prof. Leonardo Augusto Casillo Sistema de numeração: conjunto de regras que nos permite escrever e ler

Leia mais

Processing Aula 2. Prof. Wallace Lages

Processing Aula 2. Prof. Wallace Lages Processing Aula 2 Prof. Wallace Lages Aula 2 Computadores e lógica digital Variáveis Condicionais Computador ou calculadora? Computador Máquina programável capaz de realizar automaticamente uma sequência

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*

Leia mais

Infraestrutura de Hardware

Infraestrutura de Hardware Infraestrutura de Hardware Aritmética Computacional Universidade Federal Rural de Pernambuco Professor: Abner Corrêa Barros abnerbarros@gmail.com Desde os primórdios da sua história os homens tem se deparado

Leia mais

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados Linguagem de Programação I Aula 06 Linguagem C: Tipos de Dados Da Aula Anterior Linguagens de Programação A Linguagem C: Como tudo começou Principais características da Linguagem C O primeiro programa

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES Representação de Dados Professor: Airton Ribeiro de Sousa E-mail: airton.ribeiro@faciplac.edu.br 1 Ao longo dos anos, muitos padrões e convenções foram estabelecidas para determinar certos aspectos da

Leia mais

Algoritmos II prof. Daniel Oliveira

Algoritmos II prof. Daniel Oliveira Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional

Leia mais

Sistemas de Numeração

Sistemas de Numeração Infra-Estrutura de Hardware Sistemas de Numeração Conversão entre bases Bit e byte ECC Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conversão de bases Aritmética binária e hexadecimal

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Funções getchar() e putchar()

Funções getchar() e putchar() Sumário Tipos elementares Inteiro, Carácter, Real, Booleano, Void Variáveis e os operadores & e * Constantes Funções printf() e scanf() Opções de formatação Funções getchar() e putchar() Programação 2007/2008

Leia mais

Números são números, letras são números e sinais de pontuação, símbolos e até mesmo as instruções do próprio computador são números.

Números são números, letras são números e sinais de pontuação, símbolos e até mesmo as instruções do próprio computador são números. Para o computador, tudo são números. Números são números, letras são números e sinais de pontuação, símbolos e até mesmo as instruções do próprio computador são números. O método ao qual estamos acostumados

Leia mais

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Sobre funções ( uma ideia ) 2 Qual função é mais eficiente? 3 1995 2015 4 Qual

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Conjunto de Instruções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Material do prof. Sílvio Fernandes - UFERSA

Leia mais

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Notas de Aula Guilherme Sipahi Arquitetura de Computadores Notas de Aula Guilherme Sipahi Arquitetura de Computadores Conjunto de Instruções: Elementos de uma instrução: Operation Code (Opcode): especifica a operação a ser executada. Source operand reference:

Leia mais

INTRODUÇÃO À LINGUAGEM C

INTRODUÇÃO À LINGUAGEM C INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima

Leia mais

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-2018 Sobre funções ( uma ideia ) Qual função é mais

Leia mais

Introdução à Linguagem C++

Introdução à Linguagem C++ Introdução à Linguagem C++ C++: Definição C++ C A Linguagem de Programação C++ pode ser definida como uma extensão da Linguagem C; Todo código de programação em Linguagem C pode a priori ser compilado

Leia mais

Sistemas numéricos e a Representação Interna dos Dado no Computador

Sistemas numéricos e a Representação Interna dos Dado no Computador Sistemas numéricos e a Representação Interna dos Dado no Computador Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: http://www.inf.ufsc.br~silveira Material elaborado pelo prof

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes

Leia mais

Tópicos em C. Eliade F. Lima

Tópicos em C. Eliade F. Lima Tópicos em C Eliade F. Lima maio/2010 Criada em 1972, por Dennis Ritchie, nos laboratórios Bell, para ser usada no sistema operacional UNIX. Linguagem de propósito geral, sendo adequada à programação estruturada.

Leia mais

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C Referências Linguagem C Jun Okamoto Jr. Kernighan, Brian W. and Ritchie, Dennis M. The C Programming Language (ANSI C); Prentice Hall; 2ª Edição; 1988 Microchip Technology Inc. MPLAB XC8 C Compiler User

Leia mais

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com

Leia mais

Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS

Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS Para entender como o computador armazena as informações, é importante conhecer

Leia mais

A Linguagem C. A forma de um programa em C

A Linguagem C. A forma de um programa em C A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de

Leia mais

MATA49 Programação de Software Básico

MATA49 Programação de Software Básico MATA49 Programação de Software Básico Leandro Andrade leandrojsadcc.ufba.br PROF. LEANDRO ANDRADE 1 Sistemas de números PROF. LEANDRO ANDRADE 2 Conceitos básicos Os códigos binário pelo tamanho de

Leia mais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Introdução à Computação EXERCÍCIOS

Leia mais

Paradigmas de Linguagens de Programação. Tipos de Dados

Paradigmas de Linguagens de Programação. Tipos de Dados Tipos de Dados Cristiano Lehrer Introdução (1/2) 1956: FORTRAN I 1983: ADA INTEGER, REAL, arrays. Usuário pode criar um único tipo para cada categoria de variáveis no espaço de problemas e deixar o sistema

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

Lista de Exercícios Sistemas de Numeração

Lista de Exercícios Sistemas de Numeração Lista de Exercícios Sistemas de Numeração 1- (Questão 52 BNDES Profissional Básico Análise de Sistemas - Suporte ano 2010) Um administrador de sistemas, ao analisar o conteúdo de um arquivo binário, percebeu

Leia mais

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique Vetores e Matrizes Prof. Fabrício Olivetti de França Charles Henrique Vetores Estáticos Um vetor em C é declarado como: tipo nome[tamanho]; 2 Vetores Estáticos /* vetor de nome v1 com 100 elementos do

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi

Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides do Prof. Guillermo Cámara-Chávez Aulas anteriores Vetores Matrizes Cadeias

Leia mais

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Conhecida pelo PROCESSADOR Conhecida pelo Usuário COMPILADOR LINGUAGEM DE ALTO NÍVEL LINGUAGEM ASSEMBLY 2 INSTRUÇÕES EM ASSEMBLY Para programar

Leia mais

Eletrônica Digital Apresentação e Cap.1 PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

Eletrônica Digital Apresentação e Cap.1 PROF. EDUARDO G. BERTOGNA UTFPR / DAELN Eletrônica Digital Apresentação e Cap.1 PROF. EDUARDO G. BERTOGNA UTFPR / DAELN Conteúdos da Disciplina: Sistemas Numéricos e Códigos; Portas Lógicas e Algebra Booleana; Lógica Combinacional: Expressões

Leia mais

ESTRUTURA DE DADOS I AULA I

ESTRUTURA DE DADOS I AULA I ESTRUTURA DE DADOS I AULA I PROF. ME. HÉLIO ESPERIDIÃO O que é um dado? Dado pode ser definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta). o que é a informação A

Leia mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Tipo de Dados Orivaldo Santana Jr ovsj@cin.ufpe.br Observação: Este material esta baseado no material do Prof. Tiago Massoni e Prof. Fernando Buarque Tipos de Dados Primitivos

Leia mais

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis Variável, na Matemática, é um termo utilizado em substituição de outro, normalmente, desconhecido. É utilizado para representar um número ou um conjunto. No contexto da programação de computadores, uma

Leia mais