<div dir="auto">Scusa potresti spiegarmelo ho visto che hai usato le operazioni sui bit su questo sono un po scarso o se puoi indicarmi una guida abbastanza semplice per capire questo tipo di operazioni ho letto qualcosa ma mi risulta sempre complicato <div dir="auto">Grazie</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il Gio 17 Feb 2022, 17:32 Alessandro T. <<a href="mailto:tagliare3@yahoo.it">tagliare3@yahoo.it</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 17/02/22 07:34, Vinny Mautone wrote:<br>
> Studiando un pò sono riuscito a scrivere questa funzione che fa il suo <br>
> dovere, ma volevo capire se era la strada giusta o si potesse <br>
> velocizzare un po, comunque questa è la funzione<br>
><br>
> def reg_to_string(reg):<br>
> s = ''<br>
> for ele in reg:<br>
> if ele:<br>
> b = format(ele, '016b')  # converto il registro da decimale in binario<br>
> ch = chr(int(b[:8], 2))  # prendo i primi 8 bit e li converto in char<br>
> if ch.isalnum():  # controllo che sia un numero o una lettera<br>
> s += ch  # lo aggiungo alla stringa<br>
> ch = chr(int(b[8:], 2))  # faccio la stessa cosa con gli altri 8 bit<br>
> if ch.isalnum():<br>
> s += ch<br>
> return s  # ritorno la stringa<br>
><br>
> Grazie per eventuali correzioni o miglioramenti<br>
><br>
<br>
<br>
reg = [21070, 12601, 12340, 12593, 12593, 13312]<br>
<br>
versione compatta:<br>
s = ''.join(c for r in reg for i in (1,0) if (c:=chr(r >> 8*i & <br>
0xff)).isalnum())<br>
<br>
<br>
versione estesa:<br>
s = []<br>
for r in reg:<br>
   for i in (1,0):<br>
     c = chr(r >> 8*i & 0xff)<br>
     if c.isalnum():<br>
       s.append(c)<br>
s = ''.join(s)<br>
<br>
-- <br>
Alessandro T.<br>
<br>
R: Perché leggiamo dall'alto al basso e da sinistra a destra.<br>
D: Perché dovrei iniziare la risposta all'e-mail dopo il testo citato?<br>
<br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank" rel="noreferrer">Python@lists.python.it</a><br>
<a href="https://lists.python.it/mailman/listinfo/python" rel="noreferrer noreferrer" target="_blank">https://lists.python.it/mailman/listinfo/python</a><br>
</blockquote></div>