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.480 ]
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;
*/
Iptables protege contra SYN FLOOD?
Parâmetros interessantes do scanf e do printf em C
Criptografia assimétrica com o RSA
Armazenamento de senhas no Linux
Como funcionam os alocadores de memória do STD C?
Tratamento de exceções na linguagem C
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Alguém tem que acabar com ANATEL!!! (0)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (4)









