Menu

Conversão de base

Número decimal para outra base

A conversão da base 10 para qualquer outra é feita através de divisões sucessivas.

Decimal pra binário

Dividimos o numero decimal por dois até que o dividendo seja menor ou igual ao divisor. Iniciamos a contagem do ultimo quociente e dos restos da divisão. Exemplo:

145 base 10 = 10010001 base 2


Decimal para hexadecimal

A base hexadecimal é bastante usada na computação por ser uma base que admite potência de dois e torna-se mais próxima dos números decimais, os quais estamos acostumados.

O processo de conversão para hexadecimal segue os mesmos princípios da conversão pra binário, bastando prestar atenção nos números maiores que 9... que recebem caracteres alfabéticos próprios.



Do zero ao nove os números decimais correspondem aos hexadecimais. A partir do 10 fica assim:

10 - a
11 - b
12 - c
13 - d
14 - e
15 - f

Agora podemos converter 1237 decimal para hexadecimal:

1237 base 10 = 4d5 em hexadecimal
(não esquecendo que d corresponde ao numero 13) 

Outra base para Decimal

Já é um processo que exige mais atenção. Faremos como um "polinômio".

Binário pra decimal

Pegando nosso primeiro exemplo: 145 base 10 = 10010001 base 2

  1.  Numere todos os algarismos do numero que queremos converter para a base 10 da direta para a esquerda começando do zero.

  2. Agora iremos somar os números. Mas temos que multiplicar cada 1 e 0 pela sua base (no caso 2) elevada a sua posição (números em laranja) ...  Ver o exemplo é melhor:
    Clique para ampliar
  3. Quando realizarmos a soma teremos o numero binário escrito em decimal. Não é difícil!


Outra Base para Decimal

Segue a mesma linha de raciocínio, porém trocamos o numero 2 pela base original do numero. 
Exemplo: 4d5 hex = 1237 dec

4 -> 04
d -> 13
5 -> 05

Obs: qualquer outro tipo de conversão, por exemplo, binário para hexadecimal, devemos transformar o numero binário para decimal e de decimal para hexadecimal. É a forma mais segura de se realizar essa conversão. 

Introdução ao CSS

O que significa? 

Cascading Style Sheets ou em tradução livre Folhas de Estilo em Cascata.

O que é?

É uma linguagem de programação, ao contrario do que muitos dizem por ai. Ela é uma linguagem padronizada e suportada pelas versões mais atuais dos navegadores.

Pra que serve?

Serve para descrever estilos de visualização e formatação de documentos em linguagens de marcação, dentre eles, documentos HTML.
Resumindo: HTML estrutura o documento e o CSS define sua formatação.

Por que usar CSS?

  • Economiza tempo
  • Código mais claro
  • Menor tempo na hora de carregar a página
  • Maior facilidade de manutenção
  • Possibilidade de diferentes layouts para diferentes mídias
  • Obtemos controle mais fino do layout.

Sintaxe

seletor {propriedade1: valor; propriedade2: valor;}

seletor: geralmente uma tag HTML, definindo o elemento ao qual o estilo será aplicado.
propriedade: característica do elemento que será formatado.
valor: define configuração aplicada a propriedade.

Exemplo:
body {background-color: #000000; color: #FFFFFF;}


Como coloco isso na página?

Podemos colocar dentro do arquivo HTML. Para isso colocamos as as marcações de estilo dentro das tags <style></style> que ficam logo depois do <head> 

Essa forma de demarcar o estilo é um pouco limitada e fica restrita apenas ao documento no qual o estilo está declarado. Para vincular uma mesma página de estilos a várias páginas HTML utilizamos um link especial que vincula a folha de estilos (documento separado) ao documento HTML. Podemos criar um arquivo no bloco de notas e salva-lo com a extensão .css Depois, dentro do documento HTML utilizamos a tag <link> dentro da tag <head>
Algo que ficaria mais ou menos assim: 
<link rel="stylesheet"  href="minhafolhaestilos.css" type="text/css"/>
</head>
<body>

Onde eu aprendo mais?

A melhor fonte de consulta que eu encontrei até agora é o Maujor.


Soma e subtração com números binários

Os números na base 2, seguem o mesmo principio das operações na base 10, mas levando em consideração que números binários utilizam apenas dois dígitos: UM e o ZERO.

ADIÇÃO

0 + 0 = 0
1 + 0 = 1
1 + 1 = 10 (fica zero e vai um)
0 + 1 = 1

Na soma não há muito mistério, vejamos um exemplo:

(147) 1001 0011  +
(105) 0110 1001
(252) 1111 1100

A única cilada é quando aparece 1 + 1 + 1 ... e ai? 
Solução simples: fica 1 e vai 1. Exemplo:

(147) 1001 0011  +
(003) 0000 0011
(150) 1001 0110

SUBTRAÇÃO

0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = ? (pede emprestado na direita fica 10 - 1 = 1)

Exemplo: 

(147) 1001 0011  -
(003) 0000 0011
(144) 1001 0000

Exemplo de 0 - 1:

(147) 1001 0011   -
(010) 0000 1010
(137) 1000 1001

Problema 1: Quando não encontramos números para pedir emprestado.


(001) 0000 0001  -
(017) 0001 0001
(???) 1111 0000

Quando esta situação acontece você cria um numero imaginário a direita e pede emprestado pra ele. Consequentemente, todos os outros zeros ganharam 1, e etc. Pelo menos isso acontece em operações com números de bits fixos. Mas por que a resposta não deu 016 em binário como era de se esperar? Porque para encontrar 016 precisamos subtrair um do número encontrado (1110 1111) e depois inverter seus bits (0001 0000). Pronto. (Processo contrário do complemento a dois)

Alternativas à subtração

Ao invés de subtrair, podemos fazer a subtração com complemento a dois, que nada mais é do que somar um número positivo com um número negativo...

Complemento a dois

Números binários possuem uma marcação simples para representações positivas ou negativas. Quando temos o zero na frente, ele é positivo. Quando temos o 1 é negativo. Mas isso gera um problema, porque representaríamos o numero zero DUAS vezes (o +0 e o -0). Isso não existe!! O que é feito então? Há um "truque" especial... o complemento a dois
Como funciona? Invertemos o numero (se for 1 coloca zero e se for zero coloca 1) e depois somamos UM. Pronto. Teremos um numero negativo em binário.

Exemplo: 0001
Inverte:    1110
Soma 1:   1110 + 1 = 1111

Agora que já sabemos fazer o complemento a dois, vamos testar o outro método de subtração...
Pegando caso simples de subtração:

(07) 0000 0111 -
(06) 0000 0110
(01) 0000 0001

Para somarmos com o numero invertido realizamos o complemento a dois do numero 0000 0110 (que corresponde ao n˚ 06 em decimal):

Numero: 0000 0110 (+6)
Inverso:  1111 1001
adicionando 1 :
1111 1001  +
0000 0001
1111 1010 (-6)

Agora realizamos a adição:

(+07) 0000 0111 +
(-06)  1111 1010
(+01) 0000 0001


Simples, mas só um pouco prático! rs

Assembly MIPS

O que são? Representações simbólicas daquilo que o processador MIPS realmente entende.
Processadores MIPS fazem parte de uma arquitetura antiga usada em aplicações como: jogos de Atari e Nintendo 64, sistemas embarcados, dentre outros..  (google it). Por possuírem poucas instruções (na minha opinião não são tão poucas assim!! rs) é um passo simples para quem deseja aprender assembly (linguagem de máquina real).
O MIPS pode ter 32 bits ou 64 bits. Os posts publicados aqui irão se referir ao MIPS32.