Ir para conteúdo
Fórum Script Brasil
  • 0

shift byteslinguagem,contas com numero grandes


Silva Matematicano

Pergunta

Preciso gerar um algoritmo para fazer 50 milhoes de combinações e preciso contar até 2^60.Tudo esta pronto e dá certo com 3 milhoes de combinações e 2^25.
Apareceu esse problema!!


Quando faço sizeof(unsigned long long)= 8 bytes


mas quando faço sendo     i<<60 sendo  unsigned long long   e i=1;

retorna 0 em vez de retornar 2^60
8 bytes são 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 e acho que poderia contar até 2^64 mas está parando no 2^30.

alguém sabe como resolver isso??
Não entendo porque a operação shift para esquerda << não está funcionando .

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

O problema provavelmente é que está usando o especificador de formato errado para imprimir na tela o tipo unsigned long long.

Veja, esse código funcionou como esperado aqui:

#include <stdio.h>

int main(){
    unsigned long long i = 1;
    
    printf("%llu\n", i<<60);

    return 0;
}

 

Um site contendo a tabela de especificadores de formato do printf() e sua família de funções: http://pt.cppreference.com/w/c/io/fprintf

Editado por isrnick
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...