Por que as máscaras de bits são chamadas de "máscaras" e qual finalidade elas servem? - EngenhariaDeSoftware
Por que as máscaras de bits são chamadas de "máscaras" e qual finalidade elas servem?
Por que as "máscaras de bits" são chamadas assim?
Eu sei que eles são usados principalmente para operações bit a bit e o uso de máscaras de bits é mais eficiente do que o uso de variáveis separadas.
No entanto, minha pergunta é por que e quando as máscaras foram inventadas? Eles foram usados desde a computação inicial? Existem outros tipos de "máscaras" além de máscaras de bits no domínio de TI?
por yoyo_fun 26.09.2017 / 14:10
Uma máscara (da variedade facial) é algo que cobre algumas partes do seu rosto e permite que outras partes apareçam. A terminologia é usada por analogia na computação: uma máscara de bits encobre (filtra) alguns bits em um conjunto de bits e permite que outros passem.
Apenas no topo da minha cabeça, máscaras são usadas com freqüência no processamento de imagens. É um conceito semelhante: você cria uma imagem em preto-e-branco que mostra a forma do que mascarar e o que deixar passar.
por 26.09.2017 / 14:16
Uma máscara de bits é usada para mascarar alguns bits de um campo de bits enquanto expõe outros:
Isso foi usado antes da computação em eletrônica com portas lógicas (AND, OR ...) ou transistores ou em eletromecânica com relés.
por 26.09.2017 / 14:21
Bitmasks são terrivelmente antigos. Eu não consegui encontrar uma referência para o primeiro, mas eles foram certamente populares com o advento dos processadores de 8 bits, e provavelmente também foram usados em processadores de 4 bits.
A ideia por trás do bitmasks é aproveitar o paralelismo bit a bit. Um computador de 8 bits pode fazer a mesma operação bit a bit para 8 bits de uma só vez se eles forem empacotados em uma única palavra nativa (o que significa que cabe em um registrador).
O nome vem do mascaramento, que é uma abordagem geral para encobrir áreas com as quais você não quer interagir. Por exemplo, considere este estêncil para mascarar áreas de uma parede (o estêncil foi movido após a pintura para mostrar o padrão)
Asmáscarastambémsãousadasnafotografia,ondeelasusamotermo"esquiva" em vez de "estêncil". Você pode usar uma máscara para obscurecer parte da luz durante a impressão para clarear uma área.
Otermotambéméusadodiretamentenafotolitografia,queéatécnicausadaparafazercircuitosintegrados.Amáscaraimpedequealuzalcanceafoto-resistênciapintadanochip,oquecriapadrõesquemaistardelevamaospadrõesdefaceamentonochip.(Aimagemabaixoéumadasmáscarasparao processador Intel 8080A , se você ' re curioso)
Damesmaforma,nomascaramentodebits,vocêestáselecionandoaspartesdapalavraemquedesejaoperar,mascarandotodoorestodosbits.Noexemploabaixo,euusoaoperação"e" para mascarar a entrada de forma que apenas o terceiro, quarto e oitavo bit sejam exibidos. O resto é "mascarado", então eles são 0s. A máscara que eu uso é 00110001 . Eu mostro abaixo com # representando 0 e . representando 1 porque isso torna a aparência visual do bitmask similar àquela das máscaras físicas acima, e eu mostro uma linha de "bits selecionados" que mostra os bits da saída que não foram mascarados ("bits selecionados" não é realmente uma operação lógica que acontece ... o processador realmente vai direto da entrada E da máscara para a saída em uma etapa, mas eu acho que isso clarifica a imagem visual)
Como eu mencionei, bitmasking é muito antigo porque aumenta drasticamente a produtividade do processador. Em um processador de 4 bits, ele pode tornar o processador 4x mais rápido. Em um processo de 8 bits, ou pode torná-lo 8x mais rápido (em operações bit a bit, é claro).
Um uso fascinante para isso é o mecanismo de xadrez. O tabuleiro de xadrez tem 64 quadrados. Motores modernos têm números inteiros de 64 bits. Este é um pouco de sorte terrivelmente conveniente, então os mecanismos de xadrez geralmente alavancam isso. Eles têm os chamados " bitboards " que contêm os locais das peças. Isso permite que você faça todos os tipos de otimizações, como procurar todos os movimentos de peão em uma única etapa.
por 26.09.2017 / 19:08
Em seu uso mais geral em inglês, uma máscara é um dispositivo que oculta algo. Serigrafia é mencionada em outra resposta. A fita de pintura "disfarça" algo para evitar a pintura, etc. A Máscara de Solda em uma placa de circuito impresso "oculta" a área a ser soldada da área para não ser soldada.
No caso de "mascaramento de bits", alguns bits são "ocultos" ou ignorados, para que outros que sejam mais interessantes possam ser mais facilmente manipulados ou simplesmente visualizados.
O mascaramento de bits não é meramente uma técnica "antiga", é uma operação primitiva na maioria, senão em todas as instruções de máquina, até onde eu sei desde os primeiros processadores. Normalmente, isso está na forma de "usar o padrão de bits nesse registro para mascarar os bits em algum outro registro".
por 26.09.2017 / 14:32
Uma máscara de bits é semelhante à impressão de tela . Você seleciona uma determinada posição de bit para ser incluída no resultado:
source value = 42 -> 00101010b e mask = 51 -> 00110011b e result 42&51 = 00100010b -> 34
Outro significado de mask é uma página em uma interface gráfica de usuário onde o usuário pode inserir dados.
por 26.09.2017 / 14:24
Máscaras de bits foram inventadas por algumas razões:
Registradores de hardware foram mapeados para um conjunto contíguo de bits
O espaço de memória era muito limitado no passado não muito distante
Quando você olha como você vê o padrão de bits que você está tentando ligar um pouco ou ANDing para desativar bits, parece uma máscara.
A máscara mais comum (baseada em máscaras de bits) é uma máscara de imagem (veja o link que incluí no começo).
por 26.09.2017 / 14:18
Outro tipo de máscara física em TI é a foto-máscara litográfica usada para retirar apenas parte de uma bolacha de silício. Isso não foi usado para fabricar os computadores mais antigos, mas quem trabalhou na indústria nos últimos cinquenta anos teria conhecimento disso.
Eu não sei quando o termo exato "bitmask" apareceu, mas a operação em si é apenas um bit a bit e, que é uma instrução básica de todo computador binário.
por 26.09.2017 / 16:35
Tags terminology bitwise-operators efficiency low-level
Métrica pela qual os desenvolvedores devem ser responsabilizados [duplicados] Quais são os pontos-chave do Code Complete? [fechadas]