Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-02-2009, 11:19   #1
TuLKaS85
Senior Member
 
L'Avatar di TuLKaS85
 
Iscritto dal: Nov 2004
Città: Napoli
Messaggi: 999
[C-gcc] Printf per esadecimali

salve,
devo stampare delle variabili double in rappresentazione esadecimale

usando il formato %X mi viene restituito un valore come se la variabile fosse float cioè a 8 cifre (32 bit) .
uso codeblock come ide.
come faccio a vedere le 16 cifre esadecimali che rappresentano per intero i 64 bit(8 byte) della mia variabile double ??

grazie!
__________________
Intel Pentium IV 3,0 GHz, Asus P5SD2-X , 1.0 Gb ddr2, Radeon X550 , Maxtor 160Gb sata, Hitachi 100 gb pata,Piooner Dvr-109 ,Microsoft Windows XP Professional Service Pack 2
TuLKaS85 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 12:14   #2
TuLKaS85
Senior Member
 
L'Avatar di TuLKaS85
 
Iscritto dal: Nov 2004
Città: Napoli
Messaggi: 999
sono riuscito a stampare tutto il double usando due volte il formato %X

esempio
printf("\n%d %X %X",n,vardouble);

il problema è che la variabile double viene stampata male, cioè :

3D77873A BFF85364

anzichè

BFF853643D77873A

che è il valore esatto.
Praticamente le coppie di 4 byte sono stampate al contrario...
__________________
Intel Pentium IV 3,0 GHz, Asus P5SD2-X , 1.0 Gb ddr2, Radeon X550 , Maxtor 160Gb sata, Hitachi 100 gb pata,Piooner Dvr-109 ,Microsoft Windows XP Professional Service Pack 2
TuLKaS85 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 12:15   #3
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
prova col formato %llX (elle minuscola, elle minuscola, X); non sono sicuro che funzioni peró.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 13:28   #4
TuLKaS85
Senior Member
 
L'Avatar di TuLKaS85
 
Iscritto dal: Nov 2004
Città: Napoli
Messaggi: 999
si c'avevo provato...
mi sà che la printf gestisce male gli esadecimali.
__________________
Intel Pentium IV 3,0 GHz, Asus P5SD2-X , 1.0 Gb ddr2, Radeon X550 , Maxtor 160Gb sata, Hitachi 100 gb pata,Piooner Dvr-109 ,Microsoft Windows XP Professional Service Pack 2
TuLKaS85 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 13:45   #5
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Codice:
double d = 192.002f;
long long numToPrint = *((long long *)(&d));
printf("%lld\n", numToPrint);
prova a vedere se funziona
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 14:05   #6
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da TuLKaS85 Guarda i messaggi
printf("\n%d %X %X",n,vardouble);

E se togli lo spazio tra i due %X%X ??
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 14:14   #7
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
Originariamente inviato da AnonimoVeneziano Guarda i messaggi
E se togli lo spazio tra i due %X%X ??
Rimarranno comunque invertiti. A meno di doti nascoste del printf a me ignote
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 14:22   #8
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Rimarranno comunque invertiti. A meno di doti nascoste del printf a me ignote
Ahhh, non avevo notato che il problema era nella inversione, pensavo fosse lo spazio, non ho guardato bene
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 14:35   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
Originariamente inviato da AnonimoVeneziano Guarda i messaggi
Ahhh, non avevo notato che il problema era nella inversione, pensavo fosse lo spazio, non ho guardato bene
Lo immaginavo
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 14:38   #10
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Così forse va

Codice:
#include <stdio.h>

int main(int argc, char** argv)
{
double d = 192341.231;
printf("%016llX\n", d);

return 0;
}
Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 17:19   #11
TuLKaS85
Senior Member
 
L'Avatar di TuLKaS85
 
Iscritto dal: Nov 2004
Città: Napoli
Messaggi: 999
vi ringrazio per i suggerimenti...

il fatto del passaggio all'indirizzo di maulattu non và, ma in tutti i casi per quello che serve a me nn andrebbe bene comunque.

x animoveneziano, anche quello non funge, avevo provato già a dare un formato più lungo, ma il problema x quello che ho capito consiste nel fatto che la printf vede %X come una rappresentazione a 4 byte, se si cerca di rappresentare un double è come se restassero gli altry 4 byte a spasso nel buffer di stampa, e si possono recuperare aggiungendo un secondo %X

il guaio è che anche così escono invertiti... potrei agire manualmente sui bit, ma sto arrangiando così.

Il fatto è che devo vedere gli esadecimali per confrontare dei valori, mi sarebbe comodo usare il visualizzatore di codeblock sotto debug ma nn funge con gli esadecimali !
quindi sto andando piano piano con le prontf...
__________________
Intel Pentium IV 3,0 GHz, Asus P5SD2-X , 1.0 Gb ddr2, Radeon X550 , Maxtor 160Gb sata, Hitachi 100 gb pata,Piooner Dvr-109 ,Microsoft Windows XP Professional Service Pack 2
TuLKaS85 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 18:00   #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
int *temp = (int *)&vardouble;

printf("%X%X", temp[0], temp[1]);

L'ordine lo puoi cambiare come più ti piace.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 19:10   #13
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da TuLKaS85 Guarda i messaggi
vi ringrazio per i suggerimenti...

il fatto del passaggio all'indirizzo di maulattu non và, ma in tutti i casi per quello che serve a me nn andrebbe bene comunque.

x animoveneziano, anche quello non funge, avevo provato già a dare un formato più lungo, ma il problema x quello che ho capito consiste nel fatto che la printf vede %X come una rappresentazione a 4 byte, se si cerca di rappresentare un double è come se restassero gli altry 4 byte a spasso nel buffer di stampa, e si possono recuperare aggiungendo un secondo %X

il guaio è che anche così escono invertiti... potrei agire manualmente sui bit, ma sto arrangiando così.

Il fatto è che devo vedere gli esadecimali per confrontare dei valori, mi sarebbe comodo usare il visualizzatore di codeblock sotto debug ma nn funge con gli esadecimali !
quindi sto andando piano piano con le prontf...
guarda, a me su archlinux64 va.

Questo è l'output che ottengo dal programma che ti ho postato sopra :

Codice:
[hades@artemis ~]$ nano prova.c
[hades@artemis ~]$ gcc prova.c -o prova
[hades@artemis ~]$ ./prova
00007FFF8C5C2B48
[hades@artemis ~]$
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
SpaceX vuole portare nello Spazio 1 mili...
Realme 16: il nuovo mid-range che si isp...
DAZN lancia il piano Full Mobile a 19,99...
Samsung Galaxy S26, ormai è tutto...
Smartphone sempre più cari: super...
L'ultima puntata di Falsissimo rimossa d...
NASA Perseverance ha utilizzato percorsi...
Blue Origin sospende per almeno due anni...
Stampanti, Los Angeles verso il divieto ...
Roscosmos Amur: il razzo spaziale riutil...
Robot aspirapolvere per tutte le tasche:...
Accedere alle mail di un lavoratore lice...
Amazon Haul scatenato: migliaia di prodo...
Amazon Seconda Mano rilancia: sconto ext...
Super prezzo Amazon per ECOVACS DEEBOT T...
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: 19:44.


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