Cookie Consent by Free Privacy Policy Generator 📌 Afinal, o que são os 0's e 1's?


✅ Afinal, o que são os 0's e 1's?


💡 Newskategorie: Programmierung
🔗 Quelle: dev.to

Você já deve ter ouvido por aí que o computador "só entende 0's e 1's". Mas de onde vem esses 0's e 1's? O que eles representam?

Analógico vs. Digital

Antigamente, os sistemas eletrônicos lidavam com a informação de forma analógica, ou seja, os sinais elétricos que representavam a informação podiam assumir uma infinidade de amplitudes de tensão.

Representação de sinal analógico

Exemplo: Rádio AM, Rádio FM, TV Analógica.

Televisão Analógica

Todos os sistemas são suscetíveis a ruído, e para informação representada de modo analógico, isto é um grande problema, pois o processamento de sinais analógicos depende de alta precisão na amplitude, a qual é bastante afetada pelo ruído.

Representação de sinal analógico e influência do ruído

Fonte: https://www.predig.com/whitepaper/reducing-signal-noise-practice

A codificação digital veio como uma forma de reduzir erros decorrentes do ruído, e para isso, a informação é representada apenas em regiões de tensão bem definidas.

(Isso não significa que sistemas digitais são totalmente imunes a erros.)

Representação do sinal digital e maior imunidade a ruído

Fonte: https://www.predig.com/whitepaper/reducing-signal-noise-practice

Sinal digital

No geral, um sinal digital pode assumir dois níveis de tensão:

  • 0 V, ao qual atribuímos o valor lógico 0;
  • 5 V / 3,3 V / 1,8 V / etc. (dependendo da tecnologia de implementação), ao qual é atribuído o valor lógico 1.

Representação de sinal digital

Em computação, o "valor lógico" é chamado de bit (abreviação de binary digit, ou dígito binário).

Todos aqueles 0's e 1's dos quais você ouve falar são representados fisicamente pelo fluxo de sinais elétricos, os quais são controlados por meio de dispositivos eletrônicos.

Representação abstrata de zeros e uns

Transistores e Portas Lógicas

Em circuitos digitais modernos, os dispositivos utilizados para controlar tais sinais são os transistores.

Transistores são compostos de materiais semicondutores dispostos de maneira inteligente, de modo que podem ser utilizados como chaveadores.

Representações de transistores

"Ah, mas como assim chaveadores?"

Pense em um interruptor de lâmpada: podemos LIGÁ-LO ou DESLIGÁ-LO.

Do mesmo modo, o transistor pode ser controlado para permitir ou bloquear a passagem de corrente elétrica.

Interruptor de lâmpada

Os transistores são utilizados para construir arranjos levemente mais complexos, aos quais chamamos de "portas lógicas".

Tais componentes recebem sinais digitais de entrada e retornam um sinal digital como saída, executando uma operação lógica.

Portas lógicas

Antes de partir para as portas lógicas:

Assim como chamamos os dois estados de um interruptor de LIGADO e DESLIGADO, também podemos atribuir significado ao 1 e ao 0, aos quais geralmente chamamos de TRUE e FALSE (VERDADEIRO e FALSO), respectivamente.

Porta lógica AND

A porta lógica AND (em português, E) recebe várias entradas e retorna uma saída.

Tal porta retorna verdadeiro (1) se todas as entradas são verdadeiras (1) ao mesmo tempo; caso contrário, ela retorna falso (0).

Q = A e B

Porta lógica AND

Porta lógica OR

A porta OR (OU) funciona de outra forma:

Dentre as várias entradas, basta que pelo menos uma delas seja verdadeira (1) para que a saída seja verdadeira (1)

Q = A ou B

Porta lógica OR

Porta lógica XOR

A porta XOR (OU EXCLUSIVO) funciona de forma diferente: Dadas duas entradas, apenas uma das duas deve receber um sinal verdadeiro (1) para que a saída seja verdadeira (1), o que significa: OU A, OU B (A E B ao mesmo tempo retorna 0)

Q = ou A, ou B

Porta lógica XOR

Porta lógica NOT

A porta NOT (NÃO) recebe apenas uma entrada, e como o próprio nome diz, o estado lógico da entrada é invertido na saída

Q = não A

Porta lógica NOT

Porta lógica NAND

A porta NAND (NÃO E) é literalmente o contrário da porta AND: só sai falso (0) se todas as entradas forem verdadeiras (1) ao mesmo tempo. É basicamente a mesma coisa que pegar uma porta AND e colocar uma porta NOT na saída.

Q = não (A e B)

Porta lógica NAND

Porta lógica NOR

Do mesmo modo, a porta NOR (NÃO OU) é o contrário da porta OU: basta que pelo menos uma das entradas seja verdadeira (1) para que a porta retorne falso (0). É basicamente a mesma coisa que pegar uma porta OR e colocar uma porta NOT na saída.

Q = não (A ou B)

Porta lógica NOR

Porta lógica XNOR

A porta XNOR (NÃO OU EXCLUSIVO) também é chamada de "porta coincidência", pois ela retorna verdadeiro (1) se suas duas entradas forem iguais. É a mesma coisa de pegar uma porta XOR e colocar uma porta NOT na frente.

Q = não (ou A, ou B)

Porta lógica XNOR

Paralelo entre portas lógicas e programação

Em programação, podemos pensar nos laços condicionais como "aplicações de portas lógicas".

Geralmente, quando programamos um if, estabelecemos condições para que um determinado bloco de código seja executado. Cada condição pode ser pensada como um bit (0 se for falsa, 1 se for verdadeira). Podemos fazer operações com esses bits, como se estivéssemos usando portas lógicas. Na maioria das linguagens de programação, podemos usar os operadores &&, || e ! para as operações AND, OR e NOT, respectivamente. Estes operadores são chamados de operadores lógicos.

Exemplo de condicionais em programação

Para além das condicionais, podemos utilizar operações correlatas às portas lógicas para comparar números bit a bit por meio dos operadores bitwise. Para tratar deste assunto com mais profundidade, é necessário explicar sobre sistemas de numeração, o que provavelmente será feito em um artigo futuro.

Associações de portas lógicas

Portas lógicas podem ser associadas e conectadas entre si para formar circuitos mais complexos. No geral, é possível construir dois tipos de circuitos:

  • Circuitos combinacionais, que propagam os sinais de entrada pelas portas lógicas até a saída, sem realimentação;
  • Circuitos sequenciais, que possuem realimentação arranjada de forma inteligente, formando as peças básicas que constituem o que conhecemos como memória.

Um exemplo de circuito combinacional é o circuito da imagem abaixo (as bolinhas nas entradas representam portas NOT). Os circuitos sequenciais provavelmente serão tratados em um futuro artigo.

Exemplo de circuito lógico

Álgebra Booleana

Além de diagramas, podemos representar os circuitos combinacionais como expressões algébricas, com base na Álgebra Booleana.

A álgebra booleana foi criada por George Boole, um matemático inglês, durante o século XIX. Com o tempo, o trabalho de Boole se provou útil para representar algebricamente as possíveis relações e operações envolvendo informações binárias.

Representando as portas lógicas por meio da álgebra booleana:

Porta lógica Expressão algébrica
NOT Q=A‾Q = \overline{A} Q=A , ou Q=A′Q = A' Q=A
AND Q=A⋅BQ = A \cdot B Q=AB
NAND Q=A⋅B‾Q = \overline{A \cdot B} Q=AB , ou Q=(A⋅B)′Q = (A \cdot B)' Q=(AB)
OR Q=A+BQ = A + B Q=A+B
NOR Q=A+B‾Q = \overline{A + B} Q=A+B , ou Q=(A+B)′Q = (A + B)' Q=(A+B)
XOR Q=A⊕BQ = A \oplus B Q=AB
XNOR Q=A⊙BQ = A \odot B Q=AB

Assim como em expressões aritméticas, expressões booleanas também possuem suas propriedades de operação, algumas delas representadas abaixo.

Tabela de leis da álgebra booleana

Bilhões de portas lógicas!

Circuitos integrados, ou chips, como são popularmente conhecidos, costumam conter circuitos muito mais complexos e com bilhões de transistores formando um incrível número de portas lógicas, arranjadas de modo inteligente para executar várias funções.

Imagem abstrada de circuito integrado

Tomemos como exemplo processadores de computador e de smartphone: várias portas lógicas são arranjadas para formar a Unidade Lógica e Aritmética (ULA), a qual é responsável por efetuar operações matemáticas; Registradores, que guardam temporariamente dados que são utilizados para executar instruções; a Unidade de Controle, que é responsável por disparar os sinais elétricos responsáveis por gerenciar o fluxo de dados no processador e comunicação do processador com periféricos; dentre outras funcionalidades.

Imagem dos pinos de um processador

Caso tenha curiosidade em entender melhor como é o processo de fabricação de microchips, recomendo o seguinte vídeo:

...

✅ Afinal, o que são os 0's e 1's?


📈 72.59 Punkte

✅ O que são microserviços? Para que servem e quando usar?


📈 49.17 Punkte

✅ Acceso Remoto Seguro: Por que es importante y por que hay que hacerlo bien


📈 44.67 Punkte

✅ http://www.sao-nongbua.go.th/sao-nongbua/mainfile/75aFw0tYK4x9.txt


📈 38.79 Punkte

✅ Entenda o que são paradigmas de programação


📈 34.28 Punkte

✅ IAC e Terraform. O que é e porque são tão importantes? Ep.1


📈 34.28 Punkte

✅ IAC e Terraform. O que é e porque são tão importantes? Ep.2


📈 34.28 Punkte

✅ Entendendo o que são middlewares em uma aplicação ASP.NET


📈 34.28 Punkte

✅ Operadores numéricos são mais complexos do que parece


📈 34.28 Punkte

✅ O que são funções puras?


📈 34.28 Punkte

✅ JavaScript: O que são funções IIFE?


📈 34.28 Punkte

✅ Por que autenticação e autorização são importantes para desenvolvedores?


📈 34.28 Punkte

✅ GitHub Discussion: O que é isso e pra que serve?


📈 29.78 Punkte

✅ Por quê eu estou aprendendo e acho que vocês também deveriam aprender scala em 2024


📈 29.78 Punkte

✅ Mais do que armazenamento de código: 5 features do GitHub que você não conhece


📈 29.78 Punkte

✅ 3 Livros que eu acho que todo dev deveria ler pelo menos 1 vez


📈 29.78 Punkte

✅ Por que a Apple Odeia o Brasil? A História Proibida que Ninguém Contou!


📈 29.78 Punkte

✅ O Que é UX/UI Design e Por Que É Importante para Desenvolvedores


📈 29.78 Punkte

✅ Los 6 lenguajes de programación de ciencia de datos que hay que aprender en 2024


📈 29.78 Punkte

✅ Luz que me ilumina o caminho e que me ensina a viver...


📈 29.78 Punkte

✅ Tres cosas que los CIO pueden hacer para que la IA genere sostenibilidad


📈 29.78 Punkte

✅ HTML Semântico: O que, por quê e como


📈 29.78 Punkte

✅ HTML Semântico: O que, por quê e como


📈 29.78 Punkte

✅ O Que é Design de Código e Por Que Isso Importa


📈 29.78 Punkte

✅ O que é Design system e por que usar


📈 29.78 Punkte

✅ O que é uma Memória RAM ECC? Para que serve e quando usar?


📈 29.78 Punkte

✅ O que é DTO? Por que usar?


📈 29.78 Punkte

✅ http://www.phensuk-sao.go.th/index.html


📈 19.39 Punkte

✅ http://nongyai-sao.go.th/doc_news


📈 19.39 Punkte

✅ Palestras no APICON 2024 em São Paulo


📈 19.39 Punkte

✅ http://sao-sampran.go.th/zz.html


📈 19.39 Punkte

✅ http://www.nongyai-sao.go.th/king.txt


📈 19.39 Punkte

✅ http://sao.lara.gob.ve


📈 19.39 Punkte

✅ The first BSides Latin America, this time in Sao Paulo


📈 19.39 Punkte











matomo

Datei nicht gefunden!