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

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

AULA 10 REPRESENTAÇÃO NUMÉRICA O

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Unidade 1: O Computador

3. Sistemas de Numeração

Notas de aula #1 SISTEMAS NUMÉRICOS

Lógica Combinacional Aula 01 Sistema de Numeração. Felipe S. L. G. Duarte

Introdução a C Tipos de Dados Variáveis Operadores

Introdução à Programação

Tipos de Dados Simples

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Sistemas Numéricos. Tiago Alves de Oliveira

ARQUITETURA DE COMPUTADORES

Representação de Dados e Sistemas de Numeração

1. Sistemas de numeração

Sistemas Microcontrolados

Capítulo 2: Introdução à Linguagem C

Lista de Exercícios Sistemas de Numeração

Faculdade de Tecnologia de Teresina-PI Tecnologia em Redes de Computadores. Arquitetura de Computadores Prof. Nathan Saraiva

INF 1005 Programação I

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Exemplo de Subtração Binária

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior

o o o o Visão Geral da Disciplina Sistemas de Numeração Exercícios Resumo da Aula

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

PRONATEC FUNDAMENTOS DE HARDWARE. Prof. Kilmer Pereira

UNIMINAS Só é necessário o armazenamento de: Sinal da mantissa: - (menos). Valor da mantissa: Sinal do expoente: -(na realidade, háh

Introdução à Engenharia de

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Linguagens de Programação

Hardware de Computadores

CAPÍTULO 6 ARITMÉTICA DIGITAL

número : Por exemplo, tendo o seguinte binário com sinal (em vermelho indica positivo): = 3

Sistemas de Numeração

Sistemas de Numeração

Componentes da linguagem C++

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

SISTEMAS DIGITAIS SISTEMAS DE NUMERAÇÃO E CÓDIGOS

BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória

Laboratório I Aula 1

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

Algoritmos e Programação

Representação de Dados Inteiros com sinal

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Informática Sistemas de Numeração. Profª. Me. Valéria Espíndola Lessa

Sistemas Posicionais. Sistemas de Numeração. Sistemas Posicionais (2) Representação Digital Informação

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 12

Aula 6. Sistemas de Numeração. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

O COMPUTADOR. Introdução à Computação

Notação Posicional. Introdução à Computação. Bases. Bases. Sistemas de Numeração. Exemplo:

Representação de Dados

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Flávia Rodrigues. Silves, 26 de Abril de 2010

Algoritmos e Programação Estruturada

Capítulo 3 Aula 8. Representação Numérica. Aritmética Computacional Representação Numérica

EFA / S13 SIS Ricardo Castanhinha / Nº STC / Formadoras Alexandra Formosinho & Isabel Carvalho. Sistema Binário

Sistema de Numeração e Códigos. Sistemas de Informação CPCX UFMS Prof. Renato F. dos Santos

CURSO: Engenharia Elétrica e Engenharia de Computação. DISCIPLINA: Circuitos Lógicos I Z520234

1 Fundamentos da Computação Prof. Bruno Guilhen

Italo Valcy

Professor: André Rabelo Curso: Engenharia da Computação Disciplina: Lógica Digital Período: 3º Data Entrega: 21/03/2012 Valor: 15 pts Objetivos:

Aula 08. Sistemas Numéricos Conversões. Prof. Dr. Dilermando Piva Jr.

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

DE JAVA AO C++ Prof. Cesar Augusto Tacla

Sistemas de Numeração

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

ARQUITETURA DE COMPUTADORES

Programação: Tipos, Variáveis e Expressões

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Sistemas Embarcados Programação Embarcada

ICC - Aula 6. Ivan da Silva Sendin. November 17, Bits, portas logicas, flip-flops,... Numeros e Simbolos Exercicios

13 Números Reais - Tipo float

Conceitos de Linguagens de Programação

Introdução à Programação 2006/07. Computadores e Programação

Capítulo 9: Codificação. Prof.: Roberto Franciscatto

Codificação 1. Introdução. C 2 R r {! + codificação

Aula 5. Simplificação de funções lógicas (cont.) Sistemas de numeração

Arquitetura de computadores - Endianness

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

PROGRAMADOR JAVA. Aula 0 20 semanas. Instrutor : Léo Billi leo.billi@gmail.com

Linguagem de Programação em C

Conversão de Bases Numéricas

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

C para microcontroladores

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

Introdução à Organização de Computadores Memória Principal

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

3 Sistemas de Numeração:

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Programação de Computadores

2. Constantes e Variáveis

Fabio Bento

centena dezena unidade

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

Organização Básica de Computadores. Memória. Memória. Memória. Memória. Memória Parte I. Computador eletrônico digital. Sistema composto por

Sistemas de Numeração e Conversão de Base

Transcrição:

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) 0 100 101 102 103 104 105 106 107 2⁴⁸-1...... endereço

Memória Pode ser vista como um array de bytes, identificados por seus "índices" (endereços) Armazena dados e instruções 0 100 101 102 103 104 105 106 107 2⁴⁸-1...... endereço dado ou instrução

Memória Pode ser vista como um array de bytes, identificados por seus "índices" (endereços) Armazena dados e instruções dados ocupam um número de bytes que depende de seu tipo 0 100 101 102 103 104 105 106 107 2⁴⁸-1...... endereço dado ou instrução

Memória Pode ser vista como um array de bytes, identificados por seus "índices" (endereços) Armazena dados e instruções dados ocupam um número de bytes que depende de seu tipo instruções ocupam um número variável de bytes 0 100 101 102 103 104 105 106 107 2⁴⁸-1...... endereço dado ou instrução

Representação da Informação Computadores armazenam "sinais" de dois valores: 0 e 1 binary digits ou "bits"

Representação da Informação Computadores armazenam "sinais" de dois valores: 0 e 1 binary digits ou "bits" Agrupando sequências de bits podemos representar valores numéricos representação em notação posicional (base 2)

Representação da Informação Computadores armazenam "sinais" de dois valores: 0 e 1 binary digits ou "bits" Agrupando sequências de bits podemos representar valores numéricos representação em notação posicional (base 2) 01111101 00000011000011100000110010100000 125 10 51252384 10

Notação Posicional A base determina o número de dígitos sistema decimal: base 10 e dígitos de 0 a 9 Multiplicamos o "valor" de cada dígito pela base elevada à posição deste dígito e somamos os produtos

Notação Posicional A base determina o número de dígitos sistema decimal: base 10 e dígitos de 0 a 9 Multiplicamos o "valor" de cada dígito pela base elevada à posição deste dígito e somamos os produtos 1234 10

Notação Posicional A base determina o número de dígitos sistema decimal: base 10 e dígitos de 0 a 9 Multiplicamos o "valor" de cada dígito pela base elevada à posição deste dígito e somamos os produtos 3 2 1 0 1234 10

Notação Posicional A base determina o número de dígitos sistema decimal: base 10 e dígitos de 0 a 9 Multiplicamos o "valor" de cada dígito pela base elevada à posição deste dígito e somamos os produtos 3 2 1 0 1234 10 1 * 10 3 + 2 * 10 2 + 3 * 10 1 + 4 * 10 0 1000 200 30 4

Notação Binária Base 2, dígitos 0 e 1 7 6 5 4 3 2 1 0 01111101 2 0 * 2 7 + 1 * 2 6 + 1 * 2 5 + 1 * 2 4 + 1 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 125 10 0 64 32 16 8 4 0 1

Notação Hexadecimal Base 16, dígitos de 0 a 9 e letras de A a F 3 2 1 0 2ABC 16 2 * 16 3 + 10 * 16 2 + 11 * 16 1 + 12 * 16 0 10940 10 8192 2560 176 12

Notação Hexadecimal Base 16, dígitos de 0 a 9 e letras de A a F 3 2 1 0 2ABC 16 2 * 16 3 + 10 * 16 2 + 11 * 16 1 + 12 * 16 0 10940 10 8192 2560 176 12 Notações decimal e binária são inconvenientes para descrever padrões de bits e representar endereços

Notação Hexadecimal Base 16, dígitos de 0 a 9 e letras de A a F 3 2 1 0 2ABC 16 2 * 16 3 + 10 * 16 2 + 11 * 16 1 + 12 * 16 0 10940 10 8192 2560 176 12 Notações decimal e binária são inconvenientes para descrever padrões de bits e representar endereços Em C (e assembly) constantes que começam com 0x estão em notação hexadecimal: 0x10, 0xFF, 0x55aa

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 0100 Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 0100 1100 Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 0100 1100 Binário para hexa: substituimos cada grupo de 4 bits pelo dígito hexadecimal equivalente: binário (00)11 1100 1010 1101 Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 0100 1100 Binário para hexa: substituimos cada grupo de 4 bits pelo dígito hexadecimal equivalente: binário (00)11 1100 1010 1101 hexa 3 Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 0100 1100 Binário para hexa: substituimos cada grupo de 4 bits pelo dígito hexadecimal equivalente: binário (00)11 1100 1010 1101 hexa 3 C Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 0100 1100 Binário para hexa: substituimos cada grupo de 4 bits pelo dígito hexadecimal equivalente: binário (00)11 1100 1010 1101 hexa 3 C A Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Conversão Binário X Hexadecimal Hexa para binário: "expandimos" cada dígito hexadecimal: hexa 3 A 4 C binário 0011 1010 0100 1100 Binário para hexa: substituimos cada grupo de 4 bits pelo dígito hexadecimal equivalente: binário (00)11 1100 1010 1101 hexa 3 C A D Hex Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 11 2 1 5

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 11 2 1 5

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 11 2 1 5 2 1 2

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 5 10 = 2 * 2 1 + 1 * 2 0 11 2 1 5 2 1 2

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 5 10 = 2 * 2 1 + 1 * 2 0 11 10 = (2*2 1 +1*2 0 )*2 1 +1*2 0 = 2*2 2 + 1*2 1 + 1*2 0 11 2 1 5 2 1 2

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 5 10 = 2 * 2 1 + 1 * 2 0 11 10 = (2*2 1 +1*2 0 )*2 1 +1*2 0 = 2*2 2 + 1*2 1 + 1*2 0 11 2 1 5 2 1 2 2 0 1

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 5 10 = 2 * 2 1 + 1 * 2 0 11 10 = (2*2 1 +1*2 0 )*2 1 +1*2 0 = 2*2 2 + 1*2 1 + 1*2 0 2 10 = 1 * 2 1 + 0 * 2 0 11 2 1 5 2 1 2 2 0 1

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 5 10 = 2 * 2 1 + 1 * 2 0 11 10 = (2*2 1 +1*2 0 )*2 1 +1*2 0 = 2*2 2 + 1*2 1 + 1*2 0 11 2 1 5 2 1 2 2 2 10 = 1 * 2 1 + 0 * 2 0 11 10 = (1*2 1 +0*2 0 )*2 2 +1*2 1 +1*2 0 = 0 1 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0

Decimal para Binário Divisões sucessivas por 2 (base) relação com a notação posicional: "parcelas" são multiplicações de 0 ou 1 (restos) pela base elevada à posição 11 10 = 5 * 2 1 + 1 * 2 0 5 10 = 2 * 2 1 + 1 * 2 0 11 10 = (2*2 1 +1*2 0 )*2 1 +1*2 0 = 2*2 2 + 1*2 1 + 1*2 0 11 2 1 5 2 1 2 2 2 10 = 1 * 2 1 + 0 * 2 0 11 10 = (1*2 1 +0*2 0 )*2 2 +1*2 1 +1*2 0 = 0 1 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 1011 2

Decimal para Hexadecimal Divisões sucessivas por 16 (base) 1000 10 1000 16 40 62 16 8 14 3

Decimal para Hexadecimal Divisões sucessivas por 16 (base) 1000 10 = 62 * 16 1 + 8 * 16 0 62 10 = 3 * 16 1 + 14 * 16 0 1000 16 40 62 16 8 14 3

Decimal para Hexadecimal Divisões sucessivas por 16 (base) 1000 10 = 62 * 16 1 + 8 * 16 0 62 10 = 3 * 16 1 + 14 * 16 0 1000 10 = (3 * 16 1 + 14 * 16 0 ) * 16 1 + 8 * 16 0 = 3 * 16 2 + 14 * 16 1 + 8 * 16 0 1000 16 40 62 16 8 14 3

Decimal para Hexadecimal Divisões sucessivas por 16 (base) 1000 10 = 62 * 16 1 + 8 * 16 0 62 10 = 3 * 16 1 + 14 * 16 0 1000 10 = (3 * 16 1 + 14 * 16 0 ) * 16 1 + 8 * 16 0 = 3 * 16 2 + 14 * 16 1 + 8 * 16 0 1000 16 40 62 16 8 14 3 E 3E8 16

Palavras (words) Cada computador tem seu tamanho de palavra número de bits transferidos em um chunk entre memória e CPU número de bits de endereços (tamanho de um ponteiro) 0 120 121 122 123 124 125 126 127 2⁴⁸-1...... endereço

Palavras (words) Cada computador tem seu tamanho de palavra número de bits transferidos em um chunk entre memória e CPU número de bits de endereços (tamanho de um ponteiro) Trabalharemos com uma plataforma de 64 bits (8 bytes) 0 120 121 122 123 124 125 126 127 2⁴⁸-1...... endereço palavra = 64 bits (8 * 8)

Palavras (words) Cada computador tem seu tamanho de palavra número de bits transferidos em um chunk entre memória e CPU número de bits de endereços (tamanho de um ponteiro) Trabalharemos com uma plataforma de 64 bits (8 bytes) Alguns tipos de dados podem ocupar apenas parte de uma palavra, mas sempre um número inteiro de bytes 0 120 121 122 123 124 125 126 127 2⁴⁸-1...... endereço palavra = 64 bits (8 * 8)

Tamanhos de Tipos Numéricos de C O tamanho de cada tipo depende da máquina e do compilador sizeof(t): número de bytes usado pelo tipo T inteiros sem sinal (unsigned): ocupam o mesmo tamanho que os tipos com sinal, mas representam um intervalo diferente de valores Tipo C 32-bit 64-bit char 1 1 short int (short) 2 2 int 4 4 long int (long) 4 8 (T *) 4 8

Intervalos de Valores Valores inteiros em diferentes tamanhos (número de bytes) com 1 byte (8 bits) podemos representar inteiros de 0 a 255 (2 8-1) com 2 bytes (16 bits), de 0 a 65535 (2 16-1) com 4 bytes (32 bits), de 0 a 4294967295 (2 32-1) com 8 bytes (64 bits), de 0 a 2 64-1 A mesma limitação vale para endereços com 4 bytes podemos endereçar 4GB de memória com 8 bytes podemos endereçar (teoricamente) 2⁶⁴ bytes

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC, MIPS): do byte mais significativo para o menos significativo

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC, MIPS): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 endereço Big Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 endereço Big Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 02 endereço Big Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 02 03 endereço Big Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 02 03 04 endereço Big Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 0x120 01 02 03 04 endereço Big Endian endereço Little Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 02 03 04 0x120 04 endereço Big Endian endereço Little Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 02 03 04 0x120 04 03 endereço Big Endian endereço Little Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 02 03 04 0x120 04 03 02 endereço Big Endian endereço Little Endian

Ordenação de Bytes Dados representados na memória como sequência de bytes inteiro (32 bits): 4 bytes 01 02 03 04 0x01020304 mais significativo menos significativo Duas convenções para ordem de armazenamento dos bytes na memória Big Endian (PowerPC): do byte mais significativo para o menos significativo Little Endian (Intel): do byte menos significativo para o mais significativo 0x120 01 02 03 04 0x120 04 03 02 01 endereço Big Endian endereço Little Endian

Verificando a ordenação Do ponto de vista de um programa C, para verificar a ordenação da memória é necessário "quebrar" o sistema de tipos inteiro sequência de bytes #include <stdio.h> void mostra (unsigned char* p, int tam) { int i; for (i=0;i<tam;i++) printf("%02x\n", *p++); printf("\n"); } int main() { int num = 0x01020304; mostra((unsigned char*) &num, sizeof(int)); return 0; }