Lar Finanças Pessoais Números binários expressos em C ++ - dummies

Números binários expressos em C ++ - dummies

Índice:

Vídeo: CS50 - Semana 5 - Aula (2/2) - Introdução à Ciência da Computação 2024

Vídeo: CS50 - Semana 5 - Aula (2/2) - Introdução à Ciência da Computação 2024
Anonim

As variáveis ​​C ++ são armazenadas internamente como os chamados números binários. Os números binários são armazenados como uma seqüência de valores de 1 e 0 conhecidos como bits. Na maioria das vezes, você realmente não precisa lidar com quais bits particulares você usa para representar números. Às vezes, no entanto, é prático e conveniente para mexer com números no nível de bits - então C ++ fornece um conjunto de operadores para esse propósito.

Os chamados operadores lógicos bitwise operam em seus argumentos no nível de bits. Para entender como funcionam, primeiro examine como os computadores armazenam variáveis.

O sistema de números decimais

Os números que você conheceu desde o momento em que você pode contar pela primeira vez em seus dedos são conhecidos como números decimais porque estão baseados no número 10. Em geral, o programador expressa as variáveis ​​C ++ como números decimais. Assim, você poderia especificar o valor de var como (digamos) 123, mas considere as implicações.

Um número como 123 refere-se a 1 * 100 + 2 * 10 + 3 * 1. Todos esses números de base - 100, 10 e 1 - são poderes de 10.

123 = 1 * 100 + 2 * 10 + 3 * 1

Expresso de maneira ligeiramente diferente (mas equivalente), 123 parece assim:

123 = 1 * 10 < 2 + 2 * 10 1 + 3 * 10 0 Lembre-se de que

qualquer número para a potência zero é 1. Outros sistemas de números

Bem, ok, usando 10 como base (ou

base ) de nosso sistema de contagem, provavelmente deriva desses 10 dedos humanos, as ferramentas de contagem originais. Uma base alternativa para um sistema de contagem poderia ter sido tão fácil de ter sido 20.

Se o nosso esquema de numeração tivesse sido inventado por cães, pode basear-se em 8 (um dígito de cada pata está fora da vista na parte traseira da perna). Matematicamente, um sistema octal teria funcionado igualmente: 123

10 = 1 * 8 2 + 7 * 8 1 < + 3 * 8 0 = 173 8 Os 10 e 8 pequenos referem-se ao sistema de numeração, 10 para decimal (base 10) e 8 para octal (base 8). Um sistema de contagem pode usar qualquer base positiva. O sistema do número binário

Os computadores têm essencialmente dois dedos. Os computadores preferem contar usando a base 2. O número 123

10

seria expresso dessa maneira: 123 10

= 0 * 2 7 + 1 * 2 < 6 + 1 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 123 10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 01111011 2 A convenção de computador expressa números binários usando 4, 8, 16, 32 ou mesmo 64 dígitos binários, mesmo que os dígitos iniciais sejam 0.Isso também é devido à forma como os computadores são construídos internamente. Como o termo dígito

refere-se a um múltiplo de 10, um

dígito binário é chamado de bit (uma abreviatura de dígito binário >). Um byte é composto de 8 bits. (Chamar um dígito binário a byte-it não parece ser uma boa idéia.) A memória geralmente é medida em bytes (como os rolos são medidos em unidades de dúzia de padeiro). Com uma base tão pequena, você precisa usar um grande número de bits para expressar números. Os seres humanos não querem o incômodo de usar uma expressão como 011110112 para expressar um valor tão mundano como 123 10

. Os programadores preferem expressar números usando um número par de bits. O sistema octal - que é baseado em 3 bits - foi o sistema binário padrão nos primeiros dias de C. Vemos um vestígio disso ainda hoje - uma constante que começa com um 0 é assumido como octal em C ++. Assim, a linha: cout << "0173 =" << 0173 << endl; produz a seguinte saída: 0173 = 123

No entanto, octal foi quase completamente substituído pelo sistema

hexadecimal

, que é baseado em dígitos de 4 bits.

Hexadecimal usa os mesmos dígitos para os números de 0 a 9. Para os dígitos entre 9 e 16, o hexadecimal usa as primeiras seis letras do alfabeto: A para 10, B para 11 e assim por diante. Assim, 123

10 torna-se 7B 16, assim: 123 = 7 * 16 1 + B (ou seja, 11) * 16 0

= 7B 16 Os programadores preferem expressar números hexadecimais em múltiplos de 4 dígitos hexadecimais mesmo quando o dígito principal em cada caso é 0. Finalmente, quem deseja expressar um número hexadecimal como 7B 16 usando um subíndice? Os terminais nem sequer

suportam subscritos

. Mesmo em um processador de texto, é um arrasto para mudar as fontes para e do modo de subíndice apenas para digitar dois dígitos ruins. Portanto, os programadores (sem tolos, eles) usam a convenção de começar um número hexadecimal com um 0x. Assim, 7B torna-se 0x7B. Usando esta convenção, o número hexadecimal 0x7B é igual a 123 decimal, enquanto 0x123 hexadecimal é igual a 291 decimal. O snippet de código cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl; produz a seguinte saída: 0x7B = 123 0x123 = 291

Você pode usar todos os operadores matemáticos em números hexadecimais da mesma forma que você os aplicaria a números decimais.

Se você realmente quiser, você pode escrever números binários em C ++ '14 usando o prefixo '0b'. Assim, 123 torna-se 0b01111011.
Números binários expressos em C ++ - dummies

Escolha dos editores

Filmando fotos em situações especiais com Canon Rebel Série T3 Câmeras - manequins

Filmando fotos em situações especiais com Canon Rebel Série T3 Câmeras - manequins

ÀS vezes haverá não há problema em tirar o seu Canon Rebel T3 ou T3i fora e tirar fotos com configurações automáticas. A maior parte do tempo, você pode fazer com alguns ajustes simples. Alguns assuntos e situações de filmagem apresentam alguns desafios adicionais que exigem combinações de configurações mais complicadas. ...

Escolha dos editores

Obtendo o WordPress. org Software - dummies

Obtendo o WordPress. org Software - dummies

Depois de classificar seu host e domínio do site, você deve baixar e extrair os arquivos do WordPress pela WordPress. org e colocá-los no seu computador. Escolha um lugar que você lembrará, como um diretório de Documentos ou Download. Siga estas etapas: aponte seu navegador para o WordPress. org. A página principal do WordPress aparece. Clique em ...

Google AdSense para Bloggers de Mom - dummies

Google AdSense para Bloggers de Mom - dummies

Google O AdSense não é uma rede de anúncios orientada para a mãe, nem é A melhor opção de publicidade para a maioria dos blogs da mãe. Há certamente exceções a isso, especialmente se você blogar sobre produtos ou marcas. Todos os blogueiros que exibem publicidade devem ter um provedor de anúncios de backup - e o AdSense é uma ótima solução para essa necessidade. AdSense aprova ...

Relatório de conteúdo principal do google Analytics - dummies

Relatório de conteúdo principal do google Analytics - dummies

O relatório Top Content é um dos relatórios mais importantes no Google Analytics. Este relatório mostra as postagens mais populares no blog da sua mãe. Seu conteúdo popular dá uma visão do porquê seus leitores chegam até você. Os tópicos dessas postagens indicam o que as pessoas gostam, mesmo quando não comentam. Para visualizar ...

Escolha dos editores

Como fazer uma imagem disparar um link - as manequins

Como fazer uma imagem disparar um link - as manequins

Usam imagens para navegação . Eles são mais bonitos que os links de texto simples, e você pode adicionar a forma e a função na sua página com um elemento. Para criar uma imagem que desencadeia um link, você substitui um elemento no lugar do texto ao qual você ancoraria seu link. Esta marcação liga o texto: ...

Como abrir links em novos Windows ou Tabs com HTML5 - dummies

Como abrir links em novos Windows ou Tabs com HTML5 - dummies

O A web funciona porque você pode vincular páginas em seu site para páginas nos sites de outras pessoas usando um elemento de âncora simples. Quando você liga para o site de outra pessoa, você envia usuários para longe de seu próprio site. Para manter os usuários no seu site, HTML pode abrir a página vinculada em uma nova janela ...

Como criar tabelas em HTML5 - dummies

Como criar tabelas em HTML5 - dummies

O recipiente de marcação primária para tabelas em HTML é a tabela elemento. Ou seja, você usa a tag de abertura para denotar o início de uma tabela e você adiciona a tag de fechamento para encerrá-la. Além disso, os blocos de construção básicos para dados de tabela em HTML são a linha da tabela ( ) e os dados da tabela ...