Cuidado com números em Ponto Flutuante
Quanto seria (200*0,7) + 200? 340 você diria? Então você deve ler este artigo. Dependendo da situação esta operação matemática não resultará em 340. Absurdo? Quem programa em linguagem de programação C deve ficar atento!
[ Hits: 126.136 ]
Por: Elgio Schlemer em 20/03/2008 | Blog: https://elgio.prof.nom.br/~elgio
1000 = 00000000 00000000 00000011 11101000
byte +SIG byte -sig
O byte menos significativo de 1000 é 11101000 que se lido separadamente, apenas ele, resulta no decimal 232. Como c tem a possibilidade de apenas um byte, é apenas este byte que é atribuído ao c.
11101000 => 00010111 (232 complementado) 00010111 + 1 =00011000 (24 em decimal)O compilador C faz o tempo todo conversões implícitas, seja inserindo bytes em 0 (para conversão de char para int SEM sinal), seja inserindo bytes em 1 (para conversão de char para int COM SINAL) ou cortando bytes:
char a;
int x;
a = -2; /* em binário 11111110 */
x = a; /* x deve ter -2, que em binário 32 bits é
11111111 11111111 11111111 11111110
Neste caso o C inseriu três bytes em UM para fazer com que o x tivesse -2.
Se ele inserisse três bytes em ZERO x teria 254 e não -2.
Ele, o C, faria isto se o a fosse declarado como unsigned:
unsigned char a;
*/
Parâmetros interessantes do scanf e do printf em C
Iptables protege contra SYN FLOOD?
Programação com números inteiros gigantes
Instalando Facebook Folly através do Conan
Tratamento de exceções na linguagem C
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Warcraft II Remastered no Linux? (6)
O programa assinador digital (5)









