Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Amazon porta i colori sul suo Kindle da scrittura più grande: schermo Colorsoft a 11 pollici, processore quad-core, penna premium più reattiva e strumenti IA per le note, sono le note salienti. Il salto di prezzo rispetto al modello in bianco e nero si fa sentire, anche se la percezione è quella di trovarsi di fronte a un prodotto di fascia altissima, per veri appassionati
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-04-2003, 12:12   #1
gpc
Senior Member
 
L'Avatar di gpc
 
Iscritto dal: Oct 2000
Città: UK
Messaggi: 7458
Matematica binaria: aiuto

Mi serve un aiutino con dei conti in binario... Ora spiego quello che devo fare.
Io devo utilizzare una tastiera con un microcontrollore, e devo fargli prendere dentro un numero di quattro cifre. Il primo numero le unità, il secondo le decine, il terzo le centinaia e il quarto per le migliaia.
Quindi l'operazione che dovrò fare in binario all'interno del controllore sarà:
n1 + n2*10 + n3*100 + n4*1000
Ora, le istruzioni che è possibile fare su numeri binari in assembler non sono tante, ovvero shift a destra, shift a sinistra, etc, e questo significa moltiplicazione o divisione per due.
Come posso tradurre questa operazione in semplici operatori binari?!
Sinceramente non ne ho proprio idea...
__________________
"Questo forum non è un fottuto cellulare quindi scrivi in italiano, grazie." (by Hire)
Le mie foto su Panoramio - Google Earth
gpc è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:20   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Se il microcontrollore non ha istruzioni di moltiplicazione, c'è poco da fare - devi fare una routine che effettua la moltiplicazione, usando quello che hai a disposizione, come si faceva col buon vecchio C64.
Potresti anche inventarti qualcosa di particolare; ad esempio:
n*1000 = n*1024 - n*24 = n*1024-(n*16+n*8)

ps se vuoi sposto nella sez. programmazione, forse lì ti possono consigliare meglio
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:40   #3
Jo3
Senior Member
 
L'Avatar di Jo3
 
Iscritto dal: Jun 2001
Messaggi: 1300
Re: Matematica binaria: aiuto

Quote:
Originally posted by "gpc"

Mi serve un aiutino con dei conti in binario... Ora spiego quello che devo fare.
Io devo utilizzare una tastiera con un microcontrollore, e devo fargli prendere dentro un numero di quattro cifre. Il primo numero le unità, il secondo le decine, il terzo le centinaia e il quarto per le migliaia.
Quindi l'operazione che dovrò fare in binario all'interno del controllore sarà:
n1 + n2*10 + n3*100 + n4*1000
Ora, le istruzioni che è possibile fare su numeri binari in assembler non sono tante, ovvero shift a destra, shift a sinistra, etc, e questo significa moltiplicazione o divisione per due.
Come posso tradurre questa operazione in semplici operatori binari?!
Sinceramente non ne ho proprio idea...

Prendi il numero a 4 cifre, e continualo a dividere per 2
Prendi il resto di ogni divisione, e moltiplicalo per il divisore (2) : scarta il risultato della divisione, e tieni il resto moltiplicato per il divisore.

Tale operazione, si chiama modulo.

Se prenderai i risultati del modulo 2 invertiti, avrai ottenuto il numero binario

Es :

35 modulo 2 = 17,5, ergo 17, resto 0,5 *2(divisore) =1
17/2 = 8,5 ergo 8 e resto 0,5 * 2(divisore) = 1
8/2 = 4 resto 0
4/2 = 2 resto 0
2/2 = 1 resto 0
1/2 = 0 resto 1 *2 (divisore) = 1

Se prendi i resti al contrario , verra' 100011 che e 35 in binario.
__________________

Referenti in Compravendite Ognuno sceglie le cause per cui combattere in base alla propria statura.
Jo3 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:43   #4
gpc
Senior Member
 
L'Avatar di gpc
 
Iscritto dal: Oct 2000
Città: UK
Messaggi: 7458
Quote:
Originally posted by "ilsensine"

Se il microcontrollore non ha istruzioni di moltiplicazione, c'è poco da fare - devi fare una routine che effettua la moltiplicazione, usando quello che hai a disposizione, come si faceva col buon vecchio C64.
Potresti anche inventarti qualcosa di particolare; ad esempio:
n*1000 = n*1024 - n*24 = n*1024-(n*16+n*8)

ps se vuoi sposto nella sez. programmazione, forse lì ti possono consigliare meglio
Interessante... quindi dovrei fare uno shift di 10bit e sottrarre la somma tra il numero shiftato di 4 bit e di 3 bit... e questo risolve il 1000.
Per il 100 si può fare n*128 - n*28 = n*128 - (n*16 + n*8 + n*4), e per il 10 ho n*16 - (n*4 + n*2).

Bello bello, può essere una soluzione...

Non so, io non lo sposterei nella sezione programmazione perchè non mi rispondono mai di là ... no, beh, più che altro perchè mi interessanva il procedimento matematico, ho aperto un altro thread là per la programmazione del pic ma non ho ancora avuto nessuna risposta... purtroppo è un argomento molto tecnico... Comunque vedi tu, se trovi che sia più da sezione programmazione fai pure
__________________
"Questo forum non è un fottuto cellulare quindi scrivi in italiano, grazie." (by Hire)
Le mie foto su Panoramio - Google Earth
gpc è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:45   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originally posted by "gpc"


Per il 100 si può fare n*128 - n*28 = n*128 - (n*16 + n*8 + n*4)
100 = 64+32+4 (una operazione in memo)
Quote:
e per il 10 ho n*16 - (n*4 + n*2)
10=8+2

Quote:
Non so, io non lo sposterei nella sezione programmazione perchè non mi rispondono mai di là ...
Prova a fare una domanda alla volta
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:49   #6
gpc
Senior Member
 
L'Avatar di gpc
 
Iscritto dal: Oct 2000
Città: UK
Messaggi: 7458
Re: Matematica binaria: aiuto

Quote:
Originally posted by "Jo3"




Prendi il numero a 4 cifre, e continualo a dividere per 2
Prendi il resto di ogni divisione, poi invertili

Avrai ottenuto il numero binario

Es :

35 /2 = 17,5, ergo 16, resto 1 (scarta tale numero)
17/2 = 8,5 ergo 8 e resto 1
8/2 = 4 resto 0
4/2 = 2 resto 0
2/2 = 1 resto 0
1/2 = 0 resto 1

Se prendi i resti al contrario , verra' 10001 che e 35 in binario.
Ehm... Joe, mi sa che non ci siamo capiti
Non devo tradurre un numero decimale in binario, devo studiare un modo per introdurre un numero compreso tra 0 e 9999 in un PIC che lavora solo in binario inserendo una cifra alla volta
L'idea che mi ha dato ilsensine è ottima, devo solo vedere come implementarla.
Anche perchè poi ho un piccolo problemino: 9999 richiede 14bit, il pic che uso è a 8bit... quindi, visto che questo numero serve in un contatore, dovrò spezzarlo a metà e fargli fare due cicli (ad esempio, 8 bit al massimo mi danno 255, quindi per avere, che ne so, 1020, dovrò fare 255*4, e così via). Vabbè, ma qui andiamo veramente nella programmazione, a me serviva proprio solamente il principio matematico...
__________________
"Questo forum non è un fottuto cellulare quindi scrivi in italiano, grazie." (by Hire)
Le mie foto su Panoramio - Google Earth
gpc è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:51   #7
gpc
Senior Member
 
L'Avatar di gpc
 
Iscritto dal: Oct 2000
Città: UK
Messaggi: 7458
Quote:
Originally posted by "ilsensine"


128 = 64+32+4 (una operazione in memo)

10=8+2
Sagace :o



Quote:
Prova a fare una domanda alla volta
LOL Dici che li intimorisco con gli interrogatori?
Adesso vado a scrivere "sono ben accette anche risposte parziali..."
__________________
"Questo forum non è un fottuto cellulare quindi scrivi in italiano, grazie." (by Hire)
Le mie foto su Panoramio - Google Earth
gpc è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:54   #8
Jo3
Senior Member
 
L'Avatar di Jo3
 
Iscritto dal: Jun 2001
Messaggi: 1300
Re: Matematica binaria: aiuto

Quote:
Originally posted by "gpc"



Ehm... Joe, mi sa che non ci siamo capiti
Non devo tradurre un numero decimale in binario, devo studiare un modo per introdurre un numero compreso tra 0 e 9999 in un PIC che lavora solo in binario inserendo una cifra alla volta
L'idea che mi ha dato ilsensine è ottima, devo solo vedere come implementarla.
Anche perchè poi ho un piccolo problemino: 9999 richiede 14bit, il pic che uso è a 8bit... quindi, visto che questo numero serve in un contatore, dovrò spezzarlo a metà e fargli fare due cicli (ad esempio, 8 bit al massimo mi danno 255, quindi per avere, che ne so, 1020, dovrò fare 255*4, e così via). Vabbè, ma qui andiamo veramente nella programmazione, a me serviva proprio solamente il principio matematico...

Capit : dovresti moltiplicare la cifra digitata (ma verra' memorizzata in un registro? se e' un microprocessore a 8 bit, dovresti poter appaiare 2 registri (es : B,H) avendo 16 bit : eventualmente utilizza il carry di un registro per inizializzare il primo bit nel secondo) shiftandola a sinistra

Es : prima cifra = 2 (indicatore migliaia)

ergo 2*1000 = 2*1024 - 2*16 - 2*8

seconda cifra = 3

ergo 3*100 = 3*64+ 3*32 + 3*4

terza cifra = 7

ergo 7*10 = 7*8 + 7*2

quarta cifra = 5

ergo 5*1 = 5


Come gia suggerito da Sensine
__________________

Referenti in Compravendite Ognuno sceglie le cause per cui combattere in base alla propria statura.
Jo3 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:54   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originally posted by "gpc"


LOL Dici che li intimorisco con gli interrogatori?
Se si deve rispondere a tante domande in un solo thread, si perde tanto tempo
Se si deve rispondere a una sola domanda in tanti thread, si perde poco tempo, ma tante volte
Il risultato è lo stesso, ma chi ti risponde non si accorgerà mai di averti dedicato ugualmente tanto tempo

Cmq sposto di là
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 13:05   #10
gpc
Senior Member
 
L'Avatar di gpc
 
Iscritto dal: Oct 2000
Città: UK
Messaggi: 7458
Re: Matematica binaria: aiuto

Quote:
Originally posted by "Jo3"




Capit : dovresti moltiplicare la cifra digitata (ma verra' memorizzata in un registro? se e' un microprocessore a 8 bit, dovresti poter appaiare 2 registri (es : B,H) avendo 16 bit : eventualmente utilizza il carry di un registro per inizializzare il primo bit nel secondo) shiftandola a sinistra
Eh, il problema è che questa cifra mi dovrà servire in un contatore, e non posso far contare il contatore ( ) su due registri diversi: dovrò utilizzare due cicli distinti con due cifre da otto bit.

Il problema dei registri è proprio ciò a cui mi riferivo (tanto adesso siamo in programmazione ) quando dicevo che devo pensare a come implementarla. Devo guardare un po' i comandi del pic, 'sta roba non l'ho mai fatta ed è molto dura andare a vedere se tutto va bene perchè un conto è guardare su un circuito la tensione ai capi di una resistenza, un conto è capire se l'operazione è stata fatta bene all'interno di un microcontrollore
Tra l'altro non ho ben capito come funzioni il discorso delle variabili nei PIC, non le ho mai usate, non so come vadano dichiarate... credo che si debbano indirizzare all'inizio del programma, ma non sono sicuro. Boh, poi guardo!
__________________
"Questo forum non è un fottuto cellulare quindi scrivi in italiano, grazie." (by Hire)
Le mie foto su Panoramio - Google Earth
gpc è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 14:36   #11
Jo3
Senior Member
 
L'Avatar di Jo3
 
Iscritto dal: Jun 2001
Messaggi: 1300
Re: Matematica binaria: aiuto

Quote:
Originally posted by "gpc"



Eh, il problema è che questa cifra mi dovrà servire in un contatore, e non posso far contare il contatore ( ) su due registri diversi: dovrò utilizzare due cicli distinti con due cifre da otto bit.

Il problema dei registri è proprio ciò a cui mi riferivo (tanto adesso siamo in programmazione ) quando dicevo che devo pensare a come implementarla. Devo guardare un po' i comandi del pic, 'sta roba non l'ho mai fatta ed è molto dura andare a vedere se tutto va bene perchè un conto è guardare su un circuito la tensione ai capi di una resistenza, un conto è capire se l'operazione è stata fatta bene all'interno di un microcontrollore
Tra l'altro non ho ben capito come funzioni il discorso delle variabili nei PIC, non le ho mai usate, non so come vadano dichiarate... credo che si debbano indirizzare all'inizio del programma, ma non sono sicuro. Boh, poi guardo!

Non so che tipo di microprocessore stai utilizzando, ma da che mi ricordo di programmazione Z80, era possibile effettuare un move (BE, CF), eseguendo shift a 16 bit.

Controlla bene il datasheet : in ogni caso, essendo un numero su 4 cifre, il contatore sara' a 16 bit : o piu grande.
__________________

Referenti in Compravendite Ognuno sceglie le cause per cui combattere in base alla propria statura.
Jo3 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 14:52   #12
gpc
Senior Member
 
L'Avatar di gpc
 
Iscritto dal: Oct 2000
Città: UK
Messaggi: 7458
Re: Matematica binaria: aiuto

Quote:
Originally posted by "Jo3"




Non so che tipo di microprocessore stai utilizzando, ma da che mi ricordo di programmazione Z80, era possibile effettuare un move (BE, CF), eseguendo shift a 16 bit.

Controlla bene il datasheet : in ogni caso, essendo un numero su 4 cifre, il contatore sara' a 16 bit : o piu grande.
Non sto usando un microprocessore ma un microcontrollore a 8 bit... ripeto, devo fare due cicly per il delay...
__________________
"Questo forum non è un fottuto cellulare quindi scrivi in italiano, grazie." (by Hire)
Le mie foto su Panoramio - Google Earth
gpc è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
Una ventola nascosta e un design fuori d...
Display e fotocamera insieme: a Zurigo n...
Lenovo Idea Tab Plus, il tablet per stud...
Un ingegnere di AMD ha riprodotto in cas...
SanDisk Optimus cresce con nuovi SSD cer...
Loongson contro Intel e AMD: dalla Cina ...
Australia, quasi tutti gli under-16 aggi...
Oltre 1.300 miliardi di dollari per la p...
Un nuovo studio mette in dubbio la natur...
Crisi Volkswagen, torna l'ipotesi cessio...
Il CERN spegne il Large Hadron Collider:...
Stranger Than Heaven avrà una storia mol...
Il futuro prezzo di PS6 preoccupa i gioc...
AMD Ryzen 10000 sempre più vicini...
OpenAI strappa ad Apple il capo dell'har...
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: 16:42.


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