Discussione:
[Quizzone di Excel] Quesito 46
(troppo vecchio per rispondere)
r
2012-02-23 21:22:28 UTC
Permalink
Sintesi del regolamento:
1) chi risponde per primo con una soluzione che risolve guadagnerà 5
punti e dovrà postare entro due giorni un nuovo quesito
2) ulteriori 3 punti saranno assegnati alla soluzione più breve
----------------------
Per approfondire...

Regolamento:
https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel

-------------------------------------------------------------------
Quesito:
beh se non vi dispiace ... posto io :-)
in VBA gli operatori logici sono anche operatori bit to bit ... ovvero
date due espressioni numeriche eseguono un confronto tra bit nella
stessa posizione impostando il risultato a seconda dell'operatore
utilizzato. Il risultato è quindi un numero.
Tra i vari operatori logici ve ne è uno che amo particolarmente.
potrei chiedere una formula per ognuno ma ... limitiamo al solo
operatore XOR.
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
l'operatore XOR ... per testare potete scriere una semplice udf tipo:

function bit_xor(arg1 as long,arg2 as long) as long
bit_xor=arg1 xor arg2
end function

come da guida aggiungo:
L'operatore Xor funziona sia da operatore logico che da operatore bit
per bit. Esegue un confronto bit per bit fra due diverse espressioni
utilizzando la logica dell'OR esclusivo per formare il risultato in
base alla seguente tabella:

Valore del bit in espressione1 | Valore del bit in espressione2 |
Valore di risultato
0 |
0 | 0
0 |
1 | 1
1 |
0 | 1
1 |
1 | 0

punteggio solito per prima risposta e formula breve.
saluti
r
Andrea.9
2012-02-23 22:10:12 UTC
Permalink
Post by r
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
l'operatore XOR
non so se ho capito cosa dovevo fare.....
..... comunque:
=--O(E(A1;B1);E(NON(A1);NON(B1)))
dove in A1 e B1 ci sono 0 o 1
ciao
andrea
Andrea.9
2012-02-23 22:12:57 UTC
Permalink
Post by Andrea.9
Post by r
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
l'operatore XOR
non so se ho capito cosa dovevo fare.....
=--O(E(A1;B1);E(NON(A1);NON(B1)))
dove in A1 e B1 ci sono 0 o 1
ciao
andrea
anzi
=--NON(O(E(A1;B1);E(NON(A1);NON(B1))))
Andrea.9
2012-02-23 22:16:57 UTC
Permalink
Post by Andrea.9
Post by Andrea.9
Post by r
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
l'operatore XOR
non so se ho capito cosa dovevo fare.....
=--O(E(A1;B1);E(NON(A1);NON(B1)))
dove in A1 e B1 ci sono 0 o 1
ciao
andrea
anzi
=--NON(O(E(A1;B1);E(NON(A1);NON(B1))))
questa e' decisamente + corta
=SE(A1+B1<>1;0;1)
Andrea.9
2012-02-23 22:20:21 UTC
Permalink
Post by Andrea.9
questa e' decisamente + corta
=SE(A1+B1<>1;0;1)
ancora uno in meno
=--NON(A6+B6<>1)
ma mi sa che non ho capito il quesito
ciao
andrea
Andrea.9
2012-02-23 22:23:00 UTC
Permalink
Post by Andrea.9
Post by Andrea.9
questa e' decisamente + corta
=SE(A1+B1<>1;0;1)
ancora uno in meno
=--NON(A6+B6<>1)
ma mi sa che non ho capito il quesito
ciao
andrea
insisto, ancora uno in meno
=--NON(A1-B1=0)
r
2012-02-23 23:21:03 UTC
Permalink
Post by Andrea.9
Post by Andrea.9
Post by Andrea.9
questa e' decisamente + corta
=SE(A1+B1<>1;0;1)
ancora uno in meno
=--NON(A6+B6<>1)
ma mi sa che non ho capito il quesito
ciao
andrea
insisto, ancora uno in meno
=--NON(A1-B1=0)
no non hai capito :-)
guarda in wiky ... prova con l'udf ...

dati i due numeri devi ottenere il binario di entrambi e confrontare
poi i singoli bit nella stessa posizione ... secondo la tabella
esposta per xor ... ottieni un nuovo numero binario che va
riconvertito a numero decimale ...

ciao
r
Andrea.9
2012-02-24 11:41:43 UTC
Permalink
Post by r
dati i due numeri devi ottenere il binario di entrambi e confrontare
poi i singoli bit nella stessa posizione ... secondo la tabella
esposta per xor ... ottieni un nuovo numero binario che va
riconvertito a numero decimale ...
ce l'ho !!!
con i numeri in A1 e B1:
=BINARIO.DECIMALE(MATR.SOMMA.PRODOTTO(--
NON(STRINGA.ESTRAI(DECIMALE.BINARIO(A1;8);{1;2;3;4;5;6;7;8};
1)=STRINGA.ESTRAI(DECIMALE.BINARIO(B1;8);{1;2;3;4;5;6;7;8};1));
{10000000;1000000;100000;10000;1000;100;10;1}))
ciao
andrea
r
2012-02-24 22:53:10 UTC
Permalink
Post by Andrea.9
Post by r
dati i due numeri devi ottenere il binario di entrambi e confrontare
poi i singoli bit nella stessa posizione ... secondo la tabella
esposta per xor ... ottieni un nuovo numero binario che va
riconvertito a numero decimale ...
ce l'ho !!!
=BINARIO.DECIMALE(MATR.SOMMA.PRODOTTO(--
NON(STRINGA.ESTRAI(DECIMALE.BINARIO(A1;8);{1;2;3;4;5;6;7;8};
1)=STRINGA.ESTRAI(DECIMALE.BINARIO(B1;8);{1;2;3;4;5;6;7;8};1));
{10000000;1000000;100000;10000;1000;100;10;1}))
ciao
andrea
BINARIO.DECIMALE e DECIMALE.BINARIO non sono ammesse ... abbiamo
sempre considerato le funzioni del 2003 escludendo i componenti
d'analisi ...
su dai abbiamo già visto come fare in almeno altri 2 quesiti ...
r
Andrea.9
2012-02-26 19:14:42 UTC
Permalink
Post by r
BINARIO.DECIMALE e DECIMALE.BINARIO non sono ammesse ... abbiamo
sempre considerato le funzioni del 2003 escludendo i componenti
d'analisi ...
su dai abbiamo già visto come fare in almeno altri 2 quesiti ...
r
Ach!!!
Pero' funziona :-)
Ciao
Andrea
plinius
2012-02-26 19:46:16 UTC
Permalink
"r" <***@gmail.com> ha scritto nel messaggio news:828f7ba1-896e-4f46-be0f-***@e27g2000vbu.googlegroups.com...
Sintesi del regolamento:
1) chi risponde per primo con una soluzione che risolve guadagnerà 5
punti e dovrà postare entro due giorni un nuovo quesito
2) ulteriori 3 punti saranno assegnati alla soluzione più breve
----------------------
Per approfondire...

Regolamento:
https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel

-------------------------------------------------------------------
Quesito:
beh se non vi dispiace ... posto io :-)
in VBA gli operatori logici sono anche operatori bit to bit ... ovvero
date due espressioni numeriche eseguono un confronto tra bit nella
stessa posizione impostando il risultato a seconda dell'operatore
utilizzato. Il risultato è quindi un numero.
Tra i vari operatori logici ve ne è uno che amo particolarmente.
potrei chiedere una formula per ognuno ma ... limitiamo al solo
operatore XOR.
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
l'operatore XOR ... per testare potete scriere una semplice udf tipo:

function bit_xor(arg1 as long,arg2 as long) as long
bit_xor=arg1 xor arg2
end function

come da guida aggiungo:
L'operatore Xor funziona sia da operatore logico che da operatore bit
per bit. Esegue un confronto bit per bit fra due diverse espressioni
utilizzando la logica dell'OR esclusivo per formare il risultato in
base alla seguente tabella:

Valore del bit in espressione1 | Valore del bit in espressione2 |
Valore di risultato
0 |
0 | 0
0 |
1 | 1
1 |
0 | 1
1 |
1 | 0

punteggio solito per prima risposta e formula breve.
saluti
r

**********************

Superaccorciabile...
=SOMMA(ASS(RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)-RESTO(INT(INT(B1/2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);ASS(RESTO(INT((A1-INT(+A1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)-RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RIF.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);ASS(A1-B1-INT((A1-B1)/2)*2))

Ciao a tutti,
E.
r
2012-02-27 15:06:40 UTC
Permalink
Post by r
1) chi risponde per primo con una soluzione che risolve guadagnerà 5
punti e dovrà postare entro due giorni un nuovo quesito
2) ulteriori 3 punti saranno assegnati alla soluzione più breve
----------------------
Per approfondire...
Regolamento:https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel
-------------------------------------------------------------------
beh se non vi dispiace ... posto io :-)
in VBA gli operatori logici sono anche operatori bit to bit ... ovvero
date due espressioni numeriche eseguono un confronto tra bit nella
stessa posizione impostando il risultato a seconda dell'operatore
utilizzato. Il risultato è quindi un numero.
Tra i vari operatori logici ve ne è uno che amo particolarmente.
potrei chiedere una formula per ognuno ma ... limitiamo al solo
operatore XOR.
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
function bit_xor(arg1 as long,arg2 as long) as long
bit_xor=arg1 xor arg2
end function
L'operatore Xor funziona sia da operatore logico che da operatore bit
per bit. Esegue un confronto bit per bit fra due diverse espressioni
utilizzando la logica dell'OR esclusivo per formare il risultato in
Valore del bit in espressione1 | Valore del bit in espressione2 |
Valore di risultato
0                                          |
0                                          |  0
0                                          |
1                                          |  1
1                                          |
0                                          |  1
1                                          |
1                                           |  0
punteggio solito per prima risposta e formula breve.
saluti
r
**********************
Superaccorciabile...
=SOMMA(ASS(RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)-RESTO(INT(INT(B1/2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);ASS(RESTO(INT((A1-INT(+A1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)-RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RIF.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);ASS(A1-B1-INT((A1-B1)/2)*2))
Ciao a tutti,
E.
ok ... direi che si può accorciare ...
ciao
r
plinius
2012-02-28 11:43:48 UTC
Permalink
Post by plinius
Superaccorciabile...
=SOMMA(ASS(RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)-RESTO(INT(INT(B1/2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);ASS(RESTO(INT((A1-INT(+A1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)-RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RIF.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);ASS(A1-B1-INT((A1-B1)/2)*2))
Ciao a tutti,
E.
ok ... direi che si può accorciare ...
ciao
r

*********************

Nessuno lo fa? Provo io ad autoaccorciarmi [287]:

=SOMMA((RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)<>RESTO(INT(INT(B1/2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);(RESTO(INT((A1-INT(A1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)<>RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RIF.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);RESTO(DESTRA(A1-B1);2))

Penso si possa fare altro, però!

Ciao,
E.
Andrea.9
2012-03-05 08:38:25 UTC
Permalink
=SOMMA((RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)<>RESTO(INT(INT(B1 /2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);(RESTO(INT((A1-INT(A 1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)<>RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RI F.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);RESTO(DESTRA(A1-B1);2))
Penso si possa fare altro, però!
Ciao,
E.
com'e' finita?
roberto dacci la tua
r
2012-03-05 16:33:18 UTC
Permalink
Post by Andrea.9
=SOMMA((RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)<>RESTO(INT(INT(B1 /2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);(RESTO(INT((A1-INT(A 1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)<>RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RI F.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);RESTO(DESTRA(A1-B1);2))
Penso si possa fare altro, però!
Ciao,
E.
com'e' finita?
roberto dacci la tua
io avevo questa ...
=SOMMA(SE(RESTO(INT(A1/2^(RIF.RIGA(1:16)-1));2)-
RESTO(INT(B1/2^(RIF.RIGA(1:16)-1));2);2^(RIF.RIGA(1:16)-1)))
matriciale
ciao
r
plinius
2012-03-05 20:28:01 UTC
Permalink
Post by Andrea.9
Post by plinius
=SOMMA((RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)<>RESTO(INT(INT(B1
/2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);(RESTO(INT((A1-INT(A
1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)<>RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RI
F.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);RESTO(DESTRA(A1-B1);2))
Penso si possa fare altro, però!
Ciao,
E.
com'e' finita?
roberto dacci la tua
io avevo questa ...
=SOMMA(SE(RESTO(INT(A1/2^(RIF.RIGA(1:16)-1));2)-
RESTO(INT(B1/2^(RIF.RIGA(1:16)-1));2);2^(RIF.RIGA(1:16)-1)))
matriciale
ciao
r

*****************

Per numeri fino a 2^16 va benissimo, ma per emulare XOR dovrebbe gestire
almeno fino a 2^31-1, giusto?
Ciao,
E. :-)
r
2012-03-06 09:45:44 UTC
Permalink
Post by r
Post by Andrea.9
Post by plinius
=SOMMA((RESTO(INT(INT(A1/2^16)/2^(RIF.RIGA($1:$16)-1));2)<>RESTO(INT(INT(B1
/2^16)/2^(RIF.RIGA($1:$16)-1));2))*2^RIF.RIGA($16:$31);(RESTO(INT((A1-INT(A
1/2^16)*2^16)/2^RIF.RIGA($1:$15));2)<>RESTO(INT((B1-INT(B1/2^16)*2^16)/2^RI
F.RIGA($1:$15));2))*2^RIF.RIGA($1:$15);RESTO(DESTRA(A1-B1);2))
Penso si possa fare altro, però!
Ciao,
E.
com'e' finita?
roberto dacci la tua
io avevo questa ...
=SOMMA(SE(RESTO(INT(A1/2^(RIF.RIGA(1:16)-1));2)-
RESTO(INT(B1/2^(RIF.RIGA(1:16)-1));2);2^(RIF.RIGA(1:16)-1)))
matriciale
ciao
r
*****************
Per numeri fino a 2^16 va benissimo, ma per emulare XOR dovrebbe gestire
almeno fino a 2^31-1, giusto?
Ciao,
E. :-)
beh ... ci si accontenta?
:-)
r
Andrea.9
2012-03-15 08:41:09 UTC
Permalink
Post by r
beh ... ci si accontenta?
:-)
r
direi che siamo accontentati ..... :-)
enrico ....... ti tocca
ciao
andrea
r
2012-03-15 12:07:14 UTC
Permalink
Post by Andrea.9
Post by r
beh ... ci si accontenta?
:-)
r
direi che siamo accontentati ..... :-)
enrico ....... ti tocca
ciao
andrea
io ne avrei due da guerra ... di quesiti eh :-)
r
plinius
2012-03-15 13:52:51 UTC
Permalink
Post by r
Post by Andrea.9
Post by r
beh ... ci si accontenta?
:-)
r
direi che siamo accontentati ..... :-)
enrico ....... ti tocca
ciao
andrea
io ne avrei due da guerra ... di quesiti eh :-)
r
Svuota l'arsenale, guerrafondaio! :-))
r
2012-03-17 23:09:04 UTC
Permalink
Post by plinius
Post by r
Post by Andrea.9
Post by r
beh ... ci si accontenta?
:-)
r
direi che siamo accontentati ..... :-)
enrico ....... ti tocca
ciao
andrea
io ne avrei due da guerra ... di quesiti eh :-)
r
Svuota l'arsenale, guerrafondaio! :-))
mi hai preso in contropiede :-) pensavo che avresti detto:
prima vinci poi posti :-)

ok ragazzi il tempo di buttare giù un file di esempio (un paio di
giorni :-)
questa volta però vi prometo che la soluzione sarà sorpendente ... da
non crederci!
ciao
r
plinius
2012-03-18 10:41:43 UTC
Permalink
Post by plinius
Post by r
Post by Andrea.9
Post by r
beh ... ci si accontenta?
:-)
r
direi che siamo accontentati ..... :-)
enrico ....... ti tocca
ciao
andrea
io ne avrei due da guerra ... di quesiti eh :-)
r
Svuota l'arsenale, guerrafondaio! :-))
mi hai preso in contropiede :-) pensavo che avresti detto:
prima vinci poi posti :-)

ok ragazzi il tempo di buttare giù un file di esempio (un paio di
giorni :-)
questa volta però vi prometo che la soluzione sarà sorpendente ... da
non crederci!
ciao
r

********************

Ci incuriosisci! :-)

sabrina ponti
2012-03-08 08:53:57 UTC
Permalink
Post by r
1) chi risponde per primo con una soluzione che risolve guadagnerà 5
punti e dovrà postare entro due giorni un nuovo quesito
2) ulteriori 3 punti saranno assegnati alla soluzione più breve
----------------------
Per approfondire...
Regolamento:https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel
-------------------------------------------------------------------
beh se non vi dispiace ... posto io :-)
in VBA gli operatori logici sono anche operatori bit to bit ... ovvero
date due espressioni numeriche eseguono un confronto tra bit nella
stessa posizione impostando il risultato a seconda dell'operatore
utilizzato. Il risultato è quindi un numero.
Tra i vari operatori logici ve ne è uno che amo particolarmente.
potrei chiedere una formula per ognuno ma ... limitiamo al solo
operatore XOR.
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
function bit_xor(arg1 as long,arg2 as long) as long
bit_xor=arg1 xor arg2
end function
L'operatore Xor funziona sia da operatore logico che da operatore bit
per bit. Esegue un confronto bit per bit fra due diverse espressioni
utilizzando la logica dell'OR esclusivo per formare il risultato in
Valore del bit in espressione1 | Valore del bit in espressione2 |
Valore di risultato
0                                          |
0                                          |  0
0                                          |
1                                          |  1
1                                          |
0                                          |  1
1                                          |
1                                           |  0
punteggio solito per prima risposta e formula breve.
saluti
r
Ciao "mister r" cosi ti chiamano i tuoi co-excell Andrea nove e
Eliano che mi hanno caldamente consigliato di contattarti...,
ti disturbo perche ho lanciato ad andrea nove una richiesta per una
esperto che possa fare un programma gestionale dedicato alla nostra
attività che gestisce autorimesse . Puo' interssarti ???? e se si come
possiamo vederci o sentirci per telefono per capire meglio la
fattibilità e i costi <??? Noi siamo a Milano grazie sabrina
eliano
2012-03-08 11:33:55 UTC
Permalink
Post by r
1) chi risponde per primo con una soluzione che risolve guadagnerà 5
punti e dovrà postare entro due giorni un nuovo quesito
2) ulteriori 3 punti saranno assegnati alla soluzione più breve
----------------------
Per approfondire...
Regolamento:https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel
-------------------------------------------------------------------
beh se non vi dispiace ... posto io :-)
in VBA gli operatori logici sono anche operatori bit to bit ... ovvero
date due espressioni numeriche eseguono un confronto tra bit nella
stessa posizione impostando il risultato a seconda dell'operatore
utilizzato. Il risultato è quindi un numero.
Tra i vari operatori logici ve ne è uno che amo particolarmente.
potrei chiedere una formula per ognuno ma ... limitiamo al solo
operatore XOR.
Così si chiede dati due numeri in A1 e in B1 una formula che
restituisca il risultato del confronto bit to bit eseguito con
function bit_xor(arg1 as long,arg2 as long) as long
bit_xor=arg1 xor arg2
end function
L'operatore Xor funziona sia da operatore logico che da operatore bit
per bit. Esegue un confronto bit per bit fra due diverse espressioni
utilizzando la logica dell'OR esclusivo per formare il risultato in
Valore del bit in espressione1 | Valore del bit in espressione2 |
Valore di risultato
0                                          |
0                                          |  0
0                                          |
1                                          |  1
1                                          |
0                                          |  1
1                                          |
1                                           |  0
punteggio solito per prima risposta e formula breve.
saluti
r
Ciao "mister r"  cosi ti chiamano i tuoi co-excell   Andrea nove e
Eliano  che mi hanno caldamente consigliato di contattarti...,
ti disturbo perche  ho lanciato ad andrea nove una richiesta per una
esperto che possa fare un programma gestionale dedicato alla nostra
attività che gestisce autorimesse . Puo' interssarti ???? e se si come
possiamo vederci o sentirci per telefono per capire meglio la
fattibilità e i costi <??? Noi siamo a Milano grazie sabrina- Nascondi testo citato
- Mostra testo citato -
E se poi ci fosse qualche problema, un altro nominativo
ultraraccomandabile, anche se non Milanese, ma che viaggia a Cento
all'ora:
http://www.maurogsc.eu/Default.aspx
Saluti
Eliano
Loading...