Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-04-2006, 13: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, 13: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, 13: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, 13: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, 14: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, 15: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, 15: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, 15: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, 15: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 15:21.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 16: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, 16: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, 16: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, 19: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, 10: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


Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Galaxy Tab S10 Lite: il nuovo tablet di ...
Meta punta sempre più sull'AI: an...
iPhone pieghevole: lo sviluppo continua,...
Linux e macOS al sicuro: OpenSSH protegg...
HONOR rivoluziona il mercato pieghevole ...
Huawei Watch GT 6: svelato il primo teas...
Midnight di Archer vola per 88 km: il ta...
A Palermo bike e car sharing sono un fal...
La tragica storia di Sophie: morta suici...
Imbarazzante imprevisto per un Tesla Rob...
Antitrust bacchetta Enel X: multa da mil...
“Non pagheremo”: 4chan contro le multe U...
ChatGPT e Google: spunta un retroscena s...
Ecco come ottenere 100 euro di sconto ac...
La serie OPPO Reno14 arriva in Europa (e...
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: 22:17.


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