|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
[C++] Come si stampa una LONGLONG
Salve a tutti,
sto usando Visual Studio, e mi trovo a dover stampare (con la printf() ) il valore di una variabile LONGLONG. Qual e' il modificatore opportuno? Grazie a tutti Sottovento
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova con %I64d
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
VOID WINAPI LonglongToStr (LONGLONG ll, LPTSTR lpszBuffer) { TCHAR cBuffer[24]; TCHAR *pch; BOOL bNeg = FALSE; if (ll < 0) { bNeg = TRUE; ll = -ll; } pch = &cBuffer[23]; *pch = '\0'; while (ll > 0) { *(--pch) = ((TCHAR) (ll % 10)) + '0'; ll /= 10; } if (*pch == '\0') *(--pch) = '0'; if (bNeg) *(--pch) = '-'; lstrcpy (lpszBuffer, pch); }
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
![]() Come al solito faccio le cose + complicate. ![]()
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Grazie mille, funziona perfettamente.
Un'ultima domanda: come faccio ad eseguire le quattro operazioni su questi benedetti numeri? Grazie ancora Sottovento
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
È semplicemente un int più lungo a 64 bit.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Ok. Grazie ancora
High Flying Sottovento
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
http://www.codeproject.com/cpp/MulDiv64.asp
Comunque in linea di principio l'algoritmo per la moltiplicazione è facile... Basta suddividere gli operandi a 64 in "cifre" a 32 bit ed usare l'algoritmo per la moltiplicazione che si usa quando si fanno i conti a mano... I risultati intermedi li metti in interi a 64 bit e poi li sommi... Ovviamente devi stare attento agli overflow... Ad esempio: A1 A2 * B1 B2 = ______ Il risultato a 128 bit sarebbe: [A2*B2 + [(A1*B2) << 32]] + [A2*B1 + [(A1*B1) << 32] << 32 Quindi si capisce che il risultato su 64 bit è: A2*B2 + [(A1*B2 + A2*B1) << 32]... Ovviamente a patto che A1*B2 e A2*B1 stiano su 32 bit...questo lo verifichi facilmente memorizzandoli su 64 bit...e testando che sia singolarmente che la loro somma sia inferiore di 2^32... |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Che testa, le operazioni nromali funzionano tutte...
![]() ![]() Ultima modifica di cionci : 07-04-2006 alle 15:21. |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora...mi sono un po' informato...il C99 ha standardizzato i long long a 64 bit (minimo)...ma Visual C++ non mi sembra compatibile con C99
![]() |
![]() |
![]() |
![]() |
#13 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
|
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:42.