Ciências da computação dia 16
**Complemento em decimal**
Complemento em decimal
obs: usar o complemento de um número é uma maneira de transformar uma subtração em uma soma
745--84
para transformar em um complemento pegue o maior numero da subtração(745) e conte o numero de dígitos(3), agora ache o maior com esse número de dígitos (999), agora vamos fazer o complemento de 9
999--84 = 915
agora some o maior numero da subtração com o complemento do número 84
745 + 915 = 1660
repare que esse numero 1 no resultado a gente irá descartar já que ele veio do carry quando você fez 7 + 9
então o resultado dessa soma na real é 660, esse é o resultado parcial, agora para fazer o complemento de 10, você pega esse parcial e soma 1(correção do resultado)
660 + 1 = 661
Bom, em decimal isso é um pouco trabalhoso mas em binário isso tem uma característica muito interessante
Obs esse algoritmo pode ser usado para qualquer base
complemento em binário
para fazer o complemento de 1 em binário é a mesma coisa do complemento de 9
100010--10010
pega o maior (100010) e pega o maior numero com o mesmo numero de bits(111111) agora faça
111111+010010 =101101
reparou uma coisa?
101101 é a mesma coisa que inverter cada bit de 010010, por isso complemento é tão usado em binário, já que ao invés de você precisar ficar fazendo subtrações você só usa algoritmos ou circuitos de soma, dessa forma maquinas ficam mais baratas, já que ao invés de n somadores e n subtratores, agora você só precisa de n somadores
bom, então, fazendo o complemento, pegue o menor número e inverta os bits (0 vira 1 e 1 vira 0, lembrando de preencher o inicio para o numero de cima ter o mesmo numero do d baixo)
ou seja
100010+101101
resultando em
001111 (lembrando de descartar o carry final) ← resultado parcial
agora para fazer o complemento de dois pegue esse e some 1
resultando em
10000
Multiplicação em binário
a multiplicação funciona da mesma forma que em decimal, ou seja quando você multiplicar um numero por 0, tudo será 0 quando for por 1 o numero resultante será o mesmo
tabuada
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1
obs: essa tabela se assemelha a tabela verdade da porta AND
Códigos
maneira de representar tudo que existe de uma certa forma que facilite a comunicação entre coisas
ASCII
tabela criada para padronizar os caracteres usados em diferentes sistemas, já que no começo da história da computação cada maquina tinha sua tabela de caracteres próprio o que dificultava a comunicação entre máquinas
Então criou-se uma tabela com diferentes representações de caracteres que conhecemos em diferentes formatos como decimal, hexadecimal, html, octal, etc

Códigos Ponderados
são códigos em que cada posição possui um certo valor (peso)
binário é um código ponderado, já cada posição possui uma potência de 2
Observações
word = 4bits
você pode criar qualquer código, desde que seja possível representar todos os decimais (0--9)
códigos podem possuir duas ou mais maneiras de representar o mesmo digito, mas nunca dois dígitos podem possuir o mesmo código
número de combinações em qualquer base = base^n de dígitos
para representar um número decimal você precisa de no mínimo 4 bits, pois 2⁴ = 16 e seu antecessor 2³ = 8 então com 4 bits você consegue representar os 10 números decimais