Newsgroup: it.comp.java
Titolo: [MAH!]STAMPARE I BIT DI UN DOUBLE

Ciao a tutti,
devo fare un esercizio che stampi i bit di un numero double. Per far ciò uso
il metodo Double.doubleToLongBits() che ritorna un long dato che gli
operatori bit a bit possono essere utilizzati solo con gli int
(long,short...ecc) e i char. I Double in java sono rappresentati secondo la
regola IEEE 754 che prevede la distribuzione dei 64 bit previsti per il
double in:
1 bit per il segno (il più significativo: bit 63)
11 bit per l'esponente (bits 52-62)
52 bit per la mantissa (bits 0-51)
Per far ciò ho fatto questo programma prendendo come esempio il numero 5
Voi ora direte...si...ma qual è il problema?? un attimino ancora e lo
saprete :-)
----->N.B.: se invece di un double passo un int il programma funziona alla
perfezione!
public class Stampabit{
 public static void main(String args[]){
          double numero=5;
          stampabit(numero);
 }
 public static void stampabit(long n){
      int b;
      int num[]=new int[64];
      for(int i=63;i>=0;i--){
               if(  ((1L<<i)&n) !=0)
                        b=1;
               else
                        b=0;
              System.out.print(b);
              //in 63 c'è il bit di segno
               num[i]=b;  //memorizzo tutti i bit nell' array num
              }
           System.out.println();
//Faccio visualizzare i campi del double separati....tanto per maggiore
chiarezza di lettura
          System.out.println("Segno = "+num[63]);
          //Stampo a video solo la parte dell'esponente
          System.out.print("Esponente = ");
          for(int i=62;i>=52;i--)
               System.out.print(num[i]);
         //Stampo a video solo la parte dell'esponente
        System.out.print("\nMantissa = ");
        for(int i=51;i>=0;i--)
               System.out.print(num[i]);
        System.out.println();
  }
 //Questo metodo mi consente di "convertire" un double in un long
 public static void stampabit (double n){
  stampabit(Double.doubleToLongBits(n));
 }
} //chiude la dichiarazione della classe Stampabit
Ciò che mi viene stampato è:
0100000000010100000000000000000000000000000000000000000000000000
Segno = 0
Esponente = 10000000001
Mantissa = 0100000000000000000000000000000000000000000000000000
l'esponente è in forma polarizzata ed equivale a 1025 - 1023 = 2
La Mantissa equivale a 2251799813685248
ora....
che relazione c'è tra questi NUMERAZZI e il mio misero 5????????????????????
Grazie mille a coloro che riusciranno a capirci qualcosa
BUON NATALE!
Roberto
  :
--
--------------------------------------------------
Ci sono 10 tipi di persone al mondo:
quelli che capiscono il codice binario e quelli che non lo capiscono.


web: 
http://hellpenguin.mine.nu

 non crosspostare. è fastiodioso.
e chi crossposta???
invece di sprecare risorse con un post simile verificanella netiquette che
significa crosspost.
Io ho postato su altri ng inerenti a Java, non ho fatto spam, nè
pubblicità,nè ho inserito il fatidico punto e virgola nei ng destinatari del
post.
Se ci sono più ng su java perchè non dovrei sfruttarli?

> Se ci sono più ng su java perchè non dovrei sfruttarli?
ci sono persone che frequentano più ng e tutte le volte 
si leggono lo stesso messaggio uguale, non trovi sia
fastidioso ? e poi anche perchè ci sono persone che
quando vedono i crosspost non rispondono per principio
(me compreso). penso che bastino.


 (me compreso).
e qui ripeto....non è un crosspost!!!

Per quel che vale, sono d'accordo con Roberto. Postare lo stesso messaggio
indirizzandolo contemporaneamente e più ng (col fatidico ";" di cui lui
parla) è scorretto più che altro per ragioni tecniche, perchè chi rispnde
rischia di non accorgersene e rimandare il suo msg ad un sacco di altri ng,
moltiplicando così a dismisura e del tutto inutilmente i bytes mandati a
giro per la rete. Fare invece la stessa domanda su più NG mi sembra del
tutto legittimo... poichè p vero che qualcuno frequenta più NG, ma non tutti
lo fanno, perchè uno deve essere costretto a scegliere fra la tua opinione e
quella di un altro che frequenta un ng altenrativo sullo stesso argomento?
Mi sembra più che normale voler sentire più persone possibile...
A roberto invece direi che dato che ha rispettato così bene la netiquette
riguardo al corsspost, poteva evitarsi di scrivere l'oggetto in maiuscolo:
non è che il suo post sia più importante di quegli che gli stanno intorno...
visto poi che sembra ce l'abbia anche di vizio (vedi il post precedente),
sarebbe buona cosa se sotto natale smettesse di urlare!  :-)
Ciao e buone feste
Giacomo

 Mi sembra più che normale voler sentire più persone possibile...
----
In generale e' vivamente sconsigliato di ricorrere al "crossposting"
(invio di un articolo contemporaneamente in piu' gruppi) e, cio' che e'
ancora peggio, di inviare lo stesso articolo separatamente in piu' gruppi.
----
preso da
http://www.faqs.org/faqs/usenet/ch-general/intro-italian/index.html
rimane il fatto che da fastidio. proprio come questo inutile 3d.


 Ciao e buone feste
A te e famiglia :-)
Roberto

 Roberto
Rappresenterň!
Giacomo

proprio come questo inutile 3d.
Non credo affatto sia inutile... da che comdo è modo prima di poter
comunicare efficacemente (anche programmare!) si devono stabilire le regole
per farlo, ed è quello di cui si tratta in questo post!
Anzi, sarebbe interessante conoscere l'opinione di altri a riguardo...
Ciao
Giacomo
Giacomo

 vedo affatto la motivazione, e mi paicerebbe che mi venisse spiegata;
quella
ok allora togliero il subscribe da gli altri ng che parlano di java visto
che secondo te chi ha un problema dovrebbe postarlo anche su gli altri ng.
ma ti sembra ? facessero tutti così ci sarebbero tutti gli ng di un
argomento
uguali.
Davide

post.
in buona fede hai fatto ancora peggio.
Buone fonti di informazione:
http://oakroadsystems.com/genl/unice.htm#xpost
http://www.cs.tut.fi/~jkorpela/usenet/xpost.html
-- 
Seti@Home Java Applets
http://maruko.webhop.net/

 uguali.
In effetti se veramente i NG trattano lo _stesso_ argomento non vedo perchè
dovrebbero essere distinti. Ma se invece, ad esempio, esistono due NG che
parlano di java, uno in inglese e uno in italiano, perchè io che so entrambe
le lingue dovrei limitrmi ad interpellare solo gli inglesi o gli italiani?
E' più sensato che io interpelli _tutti_ quelli che possono risolvermi il
problema... Idem dicasi per i gruppi che hanno argomenti diversi (e quindi è
logico che siano ng diversi) ma con determinate aree di sovrapposizione: se
la mia domanda ricade lì perchè non dovrei porla ad entrambi?
Sarà una questione di opinioni, ma a te non scoccia sapere che puoi perdere
l'occasione di risolvere il tuo problema solo perchè devi selezionare a
priori e in modo esclusivo il gruppo a cui ti rivolgi?
Ciao
Giacomo

 non crosspostare. è fastiodioso.
Solo per fare un poco di chiarezza e rispondere in un solo colpo a tutti.
Fare un crosspost come regola generale non e' sbagliato ma e' da evitare.
La scaletta da seguire dovrebbe essere questa:
1. Ricerca del problema su internet (i.e. 
www.google.it
)
2. Ricerca del problema su vecchi post (i.e. 
groups.google.it
)
3. Postare sul NG piu' appropiato
4. [Dipende dai casi] In caso di piu' NG appropiati aspettare un lasso di
tempo (medio-lungo) tra il post in un gruppo ed un altro.
C'e' molta differenza pero' tra crosspost e post multipli (quelli che ha
fatto roberto).
I primi si *dovrebbero* evitare, i secondi si *DEVONO* evitare.
Motivazione:
utilizzando un newsreader serio (ovviamente quindi non parlo di Outlook
Express (almeno senza plug-in che lo potenziano)) il post verra' letto e
soprattutto scaricato *una sola volta*. Questo significa che un utente che
legge it.comp.java e pippo.java con un newsreader serio vede e scarica il
post di roberto una sola volta.
In caso di post multipli, l'utente di sopra si ritrova due post uguali in
due NG diversi, il che e' fastidioso.
In conclusione:
se tutti usassimo un NR serio, il crosspost non sarebbe un problema, anzi
un'arma in piu' da poter utilizzare sempre senza causare problemi.
siccome la minoranza utilizza NR seri i crosspost diventano fastidiosi e
sono da evitare.
In ogni caso i post multipli sono banditi.
-- 
Marco "Duff" Palermo
http://www.marcoduff.com/

utilizzando un newsreader serio (ovviamente quindi non parlo di Outlook
sono moderatamente sicuro che lo stesso ragionamento si applichi anche
ai server di news che si propagano una sola copia del messaggio invece
di N... con i soliti vantaggi.


 di N... con i soliti vantaggi.
Non credo... almeno non sempre...
Mi sembra strano che se fai un crosspost in it.comp.java e in jp.comp.java
venga salvato un solo messaggio ed un riferimento...



In realtà la mantissa NON è 0100000... etc, ma bensì 1 + 0.01 (in binario)
quindi il numero rappresentato è
S=0
E=2
M= 1 + 0.0100 = 1.0100(bin)
quindi, 1.0100(bin) * 2^2 è uguale a 101.00(bin)
Ma 101(bin) è proprio 5(dec)!
Vatti a rivedere come si convertono i numeri nello IEEE754.
ciao gian

 In ogni caso i post multipli sono banditi.
Una volta accettato il tuo "siccome", non vedo come tu possa ancora
sostenere la preferibilità dei corsspost rispetto ai post multipli: in
questo panorama i primi generano traffico inutile per il messaggio originale
e, con molto probabilità, per buona parte delle risposte; i secondi solo per
il messaggio originale... a te la scelta!
Il tutto, ovviamente, a meno di dinamiche strane e a me sconosciute nella
gestione dei messaggi sui server usenet...
Ciao e buon anno!
Giacomo

 Ciao e buon anno!
Buon anno anche a te!


La discussione è stata molto interessante e ho imparato un sacco di cose.
Rimanendo convinto che purtroppo allo stato attuale dei fatti i crosspost
siano i più dannosi, devo ammettere che il panorama da te prospettato
sarebbe assai preferibile, ed in esso sarebbero ovviamente ben gestibili i
essi (tra l'altro più comodi da fare rispetto ai post multipli!).
Quindi, come segno di buona volontà, ti chiedo: quale NR (free) mi consigli?
Quello da te citato? O ce ne sono di ancora migliori?
Ciao
Giacomo


Free Agent, a breve dovrebbe uscire la versione 2.0 dopo una lunghissima
attesa. Quindi, se non ti piace la versione attualmente scaricabile,
ricordati di provare la 2.0 che dovrebbe contenere numerose migliorie...
la versione 1.93 e'in effetti l'evoluzione di un programma vecchiotto ma
che io apprezzo molto.
XNews, provato solo marginalmente
sinceramente non ho controllato se quest'ultimo rispetta le regole sui
crosspost, a naso direi di si' ma si sa...
ciao



Diciamo che li ho provati quasi tutti.
Se usi Linux Pan e' insuperabile!
Agent si dice che sia il migliore, ma e' a pagamento.
Free Agent e' la versione Free di Agent, quindi con alcune limitazioni sul
"padre".
40tute Dialog fa le stesse precise identiche cose di Agent ma e' free!
X-News, l'ho visto soltanto di sfuggita, e non mi e' piaciuto molto.
La cosa che puoi fare e' di scaricarne 3-4 e provarli.
Ovviamente io ti consiglio quello che uso (40tute Dialog), ma dipende
sempre cosa ci vuoi fare e quante opzioni vuoi settare!
