Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Categoria de Tecnologia
Postado em 17 abril 2023
Atualizado em 17 abril 2023
Palavras-chave: usb,bytes,bit,ordem,extremidade,endianness,little,big
Visualizações: 1050
O idioma português é bastante semelhante com o inglês em aspectos gramaticais. Essas características em comum passam despercebidas por pessoas que já são acostumados com umas das línguas. Porém, caso um nativo da língua árabe comece a aprender inglês, ele encontrará problemas que um nativo em português nunca encontrou, como a ordem da escrita do idioma. Na língua árabe, as sentenças são escritas da direita para esquerda, enquanto que no inglês, a ordem é da esquerda para a direita.
Na computação, existe um problema semelhante ao exemplo acima e se refere a ordem que os bytes são armazenados pelo processador na memória do computador. É a extremidade.
Esse termo vem do inglês “endianness” e pode ser traduzido para “extremidade” em português. Esse conceito se refere a ordem em que os dados são armazenados na memória do computador.
Originalmente, o termo “endianness” foi importado do livro “As viagens de Gulliver”. O livro abordava sobre um guerra civil entre dois tipos de pessoas:
O motivo da guerra era que os Big-endians preferiam quebrar o ovo pela parte maior e os Little-endians preferiam quebrar pela parte menor.
Esse conceito foi adotado na computação para descrever a ordem em que os dados são armazenados na memória do computador.
A extremidade na computação se refere a ordem que os bytes são armazenados na memória da máquina. O conceito se aplica aos bytes e não aos bits (1byte = 8bits).
Apesar dos processadores atuais serem little-endians, ainda existem processadores big-endians. O grande problema ocorre na troca de dados entre duas máquinas com diferentes extremidades através da internet ou através de dispositivos de transferência de dados, como o USB. Quando existe transferência de dados entre duas máquinas com extremidades diferentes, pode acontecer um problema de incompatibilidade de ordem de bytes. A máquina que está recebendo os dados pode interpretar os bytes incorretamente, resultando em problemas como erros ou comportamentos imprevisíveis do sistema. Por essa razão, muitos protocolos de comunicação divulgam documentos contendo informações sobre a ordem dos bytes que os dados são processados.
A extremidade não se aplica apenas em nível hardware, podendo ser também usada no nível software. Um bom exemplo são os arquivos PNG, que usam a mesma ordem de bytes da internet (Network byte order) que é big-endian. Para processadores como Intel, presente em quase todos os computadores residenciais atuais, se comunicar com a internet poderia trazer problemas, uma vez que os processadores Intel são little-endians. Porém, antes de começar a emitir os pacotes de dados através da rede mundial de computadores, a máquina emissora faz a conversão da extremidade dos dados usando a função htons (Host to network short). Quando os pacotes de dados chegam na máquina destino, caso haja a necessidade, os dados são convertidos para o formato little-endian outra vez, dessa vez usando a função ntohs (Network to host short),
O valor depende da interpretação do leitor. Usaremos como exemplo o número decimal 12,345. Se segmentarmos cada algoritmo na numeração decimal, podemos chegar a seguinte conclusão:
Nós lemos os números na ordem big-end. Isso é, da ordem do maior para o menor número. Se adicionarmos 1 ao maior número, teremos um resultado de 22,345. Entretanto se adicionarmos 1 ao menor número teremos um resultado de 12,346. Em bits é a mesma coisa.
Os dados são armazenados em números binários na memória do computador. O problema de extremidade entre little-end e big-end só acontece em bytes, os bits não são afetados e sempre seguem a mesma ordem.
Ambos os valores acima, dependendo da extremidade da máquina possuem o mesmo valor. Em uma máquina little-endian, os bytes com menor valor são ordenados antes dos bytes com maior valor. Em uma máquina big-endian, os bytes maiores são ordenados antes dos bytes com menor valor.
A extremidade é a ordem em que os bytes são gerenciados em uma máquina. Existem máquinas little-endians e big-endians. É importante saber a extremidade das máquinas, principalmente quando há troca de informação entre elas, uma vez que isso define como a máquina irá enviar ou interpretar os dados.
Projetos práticos
Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.
Implementando um programa que encontra a menor distância entre dois pontos dentro de um labirinto usando o algoritmo A* (a-estrela).
Convertendo imagens para ascii art usando o valor da intensidade das cores cinzentas.
Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela
Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.
Existe muitos programadores que escrevem algoritmos mal planejados. Essa falta de planejamento dificulta a manutenção do aplicativo e aumenta a probabilidade de novos bugs.
A engenharia social é a forma mais fácil de roubar os dados da vítima, principalmente aqueles que não estão antenados..
A notação do O grande é um método de fácil implementação, usado para avaliar a eficiência de um algoritmo em relação ao tempo de processamento.
Usado como identificador em uma rede local. Possui 48bits e mais de 280 trilhões de variações que podem ser atribuídas aos dispositivos.
O algoritmo é um conjunto de instruções escritas por um programador com intuito de solucionar um problema ou obter um resultado previsto.
Também conhecida como quarta revolução industrial, utiliza tecnologias modernas para automatizar processos. Iniciou-se em 2011, na Alemanha.