Ir ao conteúdo

Posts recomendados

  • Membro VIP
Postado

Boa tarde

Estou com esse código:

void main()
{
	signed char test = '-2';
	printf("valor de test: %c\n", test);
}

Eu esperava o seguinte output:
valor de test: -2

Porém eu recebo este:
valor de test: 2

Eu imaginei que poderia usar números negativos em variáveis signed char.

  • Curtir 2
Postado
void main()
{
	signed char test = -2;//reitre as aspas simples
	printf("valor de test: %d\n", test);//signed char seria um tipo númerico, no caso
}

signed char é usado para representar tipos numéricos (-128 a 127)

char é usado para representar caracteres - apenas um - ou número (0 a 255)..

'-2' - tem dois caracteres '-' e o '2', não há como representar usando char.

Se quiser representar -2 de forma alfanumérica, use uma cadeia de char - conhecida como string

 

void main()
{
    char test[3] = "-2";
    printf("valor de test: %s\n", test);
}

 

  • Curtir 2
  • Obrigado 1
  • Amei 1
  • Membro VIP
Postado

Tente também...

void main()
{
    signed char test = -2;
    printf("valor de test: %d\n", test);
}

🙃

😳sorry.. não havia visto direito a mesma solução do amigo @Flávio Pedroza

olha esta então...

void main()
{
    signed char *test = "-2";
    printf("valor de test: %s\n", test);
}

E com direito a ficar sem comentários 😁

De fato vou fazer um... uma solução nada inteligente, ok?

😜

  • Curtir 1
  • Amei 1
Postado
2 horas atrás, Alisson328 disse:

Eu imaginei que poderia usar números negativos em variáveis signed char

 

char é por definição signed. Não precisa declarar. São valores entre -128 e 127 e estão sempre disponíveis.

 

Só precisa do unsigned para poder usar até 255. Rode esse programa:

 

int main(void)
{
    char x = -128;
    unsigned char y = 255;
    printf("x %d (-128) y %d (255)\n", x, y);
}

 

E vai ver
 

x -128 (-128) y 255 (255)

 

2 horas atrás, Alisson328 disse:
	signed char test = '-2';

 

Agora isso está só errado. Habilite sempre todas as mensagens de erro de seu compilador.

 

wh.c:7:14: warning: multi-character character constant [-Wmultichar]
    7 |     char z = '-2';
      |              ^~~~
wh.c:7:14: warning: overflow in conversion from 'int' to 'char' \
  changes value from '11570' to '50' [-Woverflow]

 

 

E teria lido isso no gcc por exemplo. Ou o equivalente em português.

 

 

  • Curtir 1
  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!