O que exatamente são as "Faixas" dos tipos e qualificadores

1. O que exatamente são as "Faixas" dos tipos e qualificadores

Leandro Salustriano dos Santos
lss22

(usa Outra)

Enviado em 14/08/2020 - 18:55h

Eu estou buscando entender todo o conceito desse contexto. Tudo ficou claro exceto um detalhe. O que especificamente são as faixas?
Entendo o conceito e a necessidade do bit mais significativo. Entendo o conceito dos qualificadores, mas o que exatamente quer dizer o intervalo entre as faixas?

O que exatamente quer dizer o intervalo -127 a 127 e o intervalo de 0 a 256?
Sim, ambos retratam a base binaria elevado a 8, isso também entendo. Mas porque as faixas ficam devidamente explicitas na tabela?


  


2. Re: O que exatamente são as

Paulo
paulo1205

(usa Ubuntu)

Enviado em 14/08/2020 - 21:29h

lss22 escreveu:

Eu estou buscando entender todo o conceito desse contexto. Tudo ficou claro exceto um detalhe. O que especificamente são as faixas?
Entendo o conceito e a necessidade do bit mais significativo. Entendo o conceito dos qualificadores, mas o que exatamente quer dizer o intervalo entre as faixas?

O que exatamente quer dizer o intervalo -127 a 127 e o intervalo de 0 a 256?
Sim, ambos retratam a base binaria elevado a 8, isso também entendo. Mas porque as faixas ficam devidamente explicitas na tabela?


Qual o contexto? Em qual linguagem? Em qual tipo de máquina? Qual(is) tipo(s) de dados?

Pergunto porque nos nossos PCs, as duas faixas de valores que você explicitou não correspondem exatamente a tipo nenhum. De novo, nos nossos PCs, um char tem oito bits, o que implica uma faixa de 0 a 255 para a variante sem sinal e, para a variante com sinal, que usa representação em complemento-a-2 (que inclusive passou a ser obrigatória no padrão mais recente do C++), -128 a 127.

Em contrapartida, as faixas que você indicou têm os seguintes problemas: 0 a 256 requer o uso de um nono bit para acomodar o valor 256 (que poderia estender a faixa até 511), e -127 a 127 possivelmente indicaria uma representação binária do tipo sinal-mais-magnitude, a qual é válida em C e em versões mais antigas de C++, mas não é o que nossos PCs usam para valores inteiros (incluindo inteiros de oito bits, como char).

Assim, para ajudar você com suas dúvidas, seria bom que você esclarecesse o que quer saber, de preferência levando as informações acima em consideração.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


3. Re: O que exatamente são as "Faixas" dos tipos e qualificadores

Leandro Salustriano dos Santos
lss22

(usa Outra)

Enviado em 14/08/2020 - 22:05h

paulo1205 escreveu:

lss22 escreveu:

Eu estou buscando entender todo o conceito desse contexto. Tudo ficou claro exceto um detalhe. O que especificamente são as faixas?
Entendo o conceito e a necessidade do bit mais significativo. Entendo o conceito dos qualificadores, mas o que exatamente quer dizer o intervalo entre as faixas?

O que exatamente quer dizer o intervalo -127 a 127 e o intervalo de 0 a 256?
Sim, ambos retratam a base binaria elevado a 8, isso também entendo. Mas porque as faixas ficam devidamente explicitas na tabela?


Qual o contexto? Em qual linguagem? Em qual tipo de máquina? Qual(is) tipo(s) de dados?

Pergunto porque nos nossos PCs, as duas faixas de valores que você explicitou não correspondem exatamente a tipo nenhum. De novo, nos nossos PCs, um char tem oito bits, o que implica uma faixa de 0 a 255 para a variante sem sinal e, para a variante com sinal, que usa representação em complemento-a-2 (que inclusive passou a ser obrigatória no padrão mais recente do C++), -128 a 127.

Em contrapartida, as faixas que você indicou têm os seguintes problemas: 0 a 256 requer o uso de um nono bit para acomodar o valor 256 (que poderia estender a faixa até 511), e -127 a 127 possivelmente indicaria uma representação binária do tipo sinal-mais-magnitude, a qual é válida em C e em versões mais antigas de C++, mas não é o que nossos PCs usam para valores inteiros (incluindo inteiros de oito bits, como char).

Assim, para ajudar você com suas dúvidas, seria bom que você esclarecesse o que quer saber, de preferência levando as informações acima em consideração.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


Linguagem C, 64 Bits(ou 32), sem contexto nenhum. Eu apenas quero entender o que são as faixas mas você me deu umas ideias.

Cara, eu tava tentando deixar mais explicito a minha duvida, com o que você disse, e acabou que eu estou começando a entender. Apaguei tudo e estou recomeçando, para dizer meu entendimento. Se você puder me corrigir, ficarei lisonjeado!

A faixa condiz com a tabela ASCII. Por exemplo, declarar um char não-qualificado iria se tornar redundante já que a tabela ASCII de characters iria começar no 32(dec). Mas ainda sim, eu poderia tratar o char como se fosse um inteiro. Entendi bem?


4. Re: O que exatamente são as "Faixas" dos tipos e qualificadores

Berghetti
berghetti

(usa Debian)

Enviado em 21/08/2020 - 11:51h

A faixa condiz com a tabela ASCII. Por exemplo, declarar um char não-qualificado iria se tornar redundante já que a tabela ASCII de characters iria começar no 32(dec). Mas ainda sim, eu poderia tratar o char como se fosse um inteiro. Entendi bem?


Não, a tabela ASCII é apenas uma convenção, e não é que você pode tratar o tipo char como "se fosse" um inteiro, ele é um inteiro (de 8 bits == 1 byte).

entenda essas faixas de valores como a faixa de representação de valores que o tipo suporta.

ex:
qual valor máximo você consegue representar com 2 bits sem sinal?
o valor de todos os bits ligado, logo...
11 (binario) == 3 (decimal).

quais o valores possíveis?
00 == 0
01 == 1
10 == 2
11 == 3



5. Re: O que exatamente são as

Paulo
paulo1205

(usa Ubuntu)

Enviado em 21/08/2020 - 20:19h

lss22 escreveu:

Cara, eu tava tentando deixar mais explicito a minha duvida, com o que você disse, e acabou que eu estou começando a entender. Apaguei tudo e estou recomeçando, para dizer meu entendimento. Se você puder me corrigir, ficarei lisonjeado!

A faixa condiz com a tabela ASCII.


Qual faixa? Nenhum tipo do C corresponde exatamente ao ASCII, cujos índices vão de 0 a 127. Mesmo o menor dos tipos inteiros em C, que é o char, vai de 0 a 255, quando sem sinal, ou de -128 a 127, quando com sinal.

Por exemplo, declarar um char não-qualificado iria se tornar redundante já que a tabela ASCII de characters iria começar no 32(dec).


Não entendi o contexto em que seria redundante declarar uma variável como char não-qualificado. Redundante em relação a quê?

E, de novo, os valores numéricos correspondentes aos símbolos do ASCII (que eu costumo chamar de índices dessa tabela) começam em zero (não 32, como você disse). Os índices de 0 a 31 e também o 127 são usados com caracteres ditos caracteres de controle, mas alguns desses caracteres são absolutamente essenciais no nosso dia-a-dia, tais como a mudança de linha (índice 10), retorno ao começo da linha (13), tabulação (9) ou avanço de página (12).

Mas ainda sim, eu poderia tratar o char como se fosse um inteiro. Entendi bem?


Pode, porque o char é, antes de tudo, um tipo aritmético inteiro. Que ele seja (antigamente mais do que hoje) usado para armazenar índices na tabela de caracteres é que é um aspecto secundário.

Em outras palavras: não é que o tipo char exista para armazenar caracteres e também possa ser usado como valores aritméticos inteiros, mas sim que ele existe para representar valores aritméticos inteiros pequenos (apenas 8 bits) e também foi considerado, justamente por ocupar pouco espaço na memória, adequado para representar caracteres em conjuntos de caracteres com 256 símbolos ou menos.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts