Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problemi di moltiplicazione con il C

    ho due variabili dichiarate in questo modo:
    unsigned int a,b;
    unsigned long long int ciccio;
    a=0x00800000;
    b=0x00800000
    ciccio=a*b;

    ciccio alla fine dovrebbe essere uguale a 0x400000000000
    il problema è che andando a stampare il risultato sotto linux con %llx, mi stampa il risultato 0.

    le operazioni bitwise non si possono effettuare poichè valgono solo sugli interi, ora io volevo estrapolare i bit da 47 a 24, come fare? avete un suggerimento da darmi?

    io avrei pensato di estrarre i dati con memmove(), ma perchè esce 0 il prodotto?

    grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326

    Re: problemi di moltiplicazione con il C

    Originariamente inviato da gigiachiara
    ho due variabili dichiarate in questo modo:
    unsigned int a,b;
    unsigned long long int ciccio;
    a=0x00800000;
    b=0x00800000
    ciccio=a*b;

    ciccio alla fine dovrebbe essere uguale a 0x400000000000
    il problema è che andando a stampare il risultato sotto linux con %llx, mi stampa il risultato 0.
    A me invece stampa proprio il risultato corretto, sempre su Linux. Caso mai prova anche con %Lx... comunque a me va bene sia con %llx che con %Lx.

    le operazioni bitwise non si possono effettuare poichè valgono solo sugli interi, ora io volevo estrapolare i bit da 47 a 24, come fare? avete un suggerimento da darmi?

    io avrei pensato di estrarre i dati con memmove(), ma perchè esce 0 il prodotto?

    grazie a tutti
    conosci il tipo union? *

    Potresti lavorare con quello, ma prima di dire altro aspetto che tu dica se conosci l'argomento o no (tra l'altro è una supposizione che faccio in base a esperienze con esercizi fatti in passato, ma la cosa dovrebbe adattarsi anche a questa situazione).

    (*) l'emoticon è un link

    EDIT: comunque sicuro di aver controllato che non si possono utilizzare gli operatori bitwise su un unsigned long long int? A me sembra proprio che non ci sia alcun problema a farlo... direi che puoi lasciar stare la union!
    every day above ground is a good one

  3. #3
    problema risolto
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.