Manipular Inteiros No 64 Bits 10324 Lu52f6

Embed Size (px)

DESCRIPTION

Manipular

Citation preview

  • Manipular inteiros no 64 bitsAgosto 2014

    Em C, um inteiro tradicional no assinado de 32 bits no pode excedero valor de 4 294 967 295. possvel que voc seja levado a lidar com nmeros maiores e, porisso, voc precisar de inteiros codificados em 64 bits. No entanto,este tipo nem sempre tratado da mesma forma que um inteirocomum. Na verdade, as constantes inteiras e a exibio destesnmeros no so definidas da mesma maneira.

    Inteiros 64 bits no assinadosType: unsigned long long Formatao para a exibio: %llu Sufixopara definir uma constante: ULL Exemplo://Atribua o valor 4294967296 na unsigned long long a = 4294967296ULL; //Atribua este valor printf("%llu", a);

    Inteiros 64 bits assinadosType: long long Formatao para a exibio: %lld Sufixo para definir uma constante: LLExemplo://Atribua o valor 4294967296 na long long a = 4294967296LL; //Atribua este valorprintf("%lld", a);

    Porque um sufixo bizarro para definir um valor constante?Se voc tentar, por exemplo:unsigned long long a = 4294967296O seu compilador lhe dir que este nmero demasiado grande para o tipo "longo". Ou seja, uminteiro em 32 bits. As constantes tm este tipo por padro. Em ltima anlise, este conceito est

  • diretamente ligado arquitetura dos processadores de 32 bits. Um registro de 32 doprocessador limitado e seu compilador vai tentar, por padro, botar os nmeros em um nicoregisto. Mas com um sufixo como LL e ULL, o seu compilador armazenar o seu nmero em doisregistros, ou seja, 64 bits, deixando uma capacidade muito maior. Traduo feita por LuciaMaurity y NouiraEste documento, intitulado Manipular inteiros no 64 bits a partir de Kioskea (pt.kioskea.net) est disponibilizadosob a licena Creative Commons. Voc pode copiar, modificar cpias desta pgina, nas condies estipuladas pelalicena, como esta nota aparece claramente.