Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-04-2006, 14:16   #1
sottovento
Senior Member
 
L'Avatar di sottovento
 
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
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 14:34   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Prova con %I64d
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 14:39   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da sottovento
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?
Io mi ero fatto addirittura una funzione apposita!
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);
}
Nota che LONGLONG è definito nel SDK di Windows, quindi non è "standard". La wsprintf non mi sembra nemmeno che abbia un tipo di formattatore adatto.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 14:56   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da cionci
Prova con %I64d
Sì, è vero: la printf con "%I64d" funziona.
Come al solito faccio le cose + complicate.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 15:49   #5
sottovento
Senior Member
 
L'Avatar di sottovento
 
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
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 16:00   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da sottovento
Grazie mille, funziona perfettamente.

Un'ultima domanda: come faccio ad eseguire le quattro operazioni su questi benedetti numeri?
Esattamente come per altri tipi int, long, ecc...
È semplicemente un int più lungo a 64 bit.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 16:02   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ok. Grazie ancora

High Flying
Sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 16:12   #8
cionci
Senior Member
 
L'Avatar di cionci
 
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...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 16:17   #9
cionci
Senior Member
 
L'Avatar di cionci
 
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 16:21.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 17:15   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da cionci
Prova con %I64d
%lld non è proprio per i long long?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 17:20   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da DanieleC88
%lld non è proprio per i long long?
Se non sbaglio su Windows non funziona...più che altro su Visual C++...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 17:28   #12
cionci
Senior Member
 
L'Avatar di cionci
 
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
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 20:43   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da cionci
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
Visual C++ ha il tipo __int64 (se lo scrivi nell'editor noterai che lo evidenzia come keyword).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 11:38   #14
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 71104
Visual C++ ha il tipo __int64 (se lo scrivi nell'editor noterai che lo evidenzia come keyword).
Infatti, se non mi sbaglio, LONGLONG è un typedef per __int64!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Sky e Amazon trasmetteranno la Champions...
'Robot abbastanza forti da fratturare un...
Anche DAZN ha il suo Black Friday: 40 eu...
Carmageddon: Rogue Shift, il prossimo ca...
Redal Alert 2: Command & Conquer si ...
Kingston Technology: memorie e storage c...
Narwal Freo Z10 Ultra: il robot con moci...
In 3 minuti le vedete tutte: sono le mig...
Black Friday da record per Tineco: le sc...
La nuova PS5 con Fortnite manda in tilt ...
Amazon, i tagli hanno colpito soprattutt...
Pazzesco: Panasonic Lumix DC-GH5M2E a 79...
Ecco tutte le offerte Black Friday pi&ug...
DJI Neo a 169€, Flip Combo a 309€ e molt...
Quattro persone arrestate negli USA per ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v