Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-06-2008, 18:59   #1
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
divisioni binarie

Non è esattamente un discorso di programmazione, più che altro sarebbe un'implementazione di divisore binario con 3 bit di dividendo e divisore.
Ovviamente l'output sono sia quoziente che resto.
Io le operazioni le ho fatte e vengono, ma il risultato in alcune soluzioni non ha alcun senso... aiutatemi please
Il problema che ho è questo:
supponendo che io abbia una divisione
Codice:
001 / 110
avrei come risultato
Codice:
000
con
Codice:
001
di resto, perchè da verifica
Codice:
DIVIDENDO = DIVISORE x RISULTATO + RESTO
...

ma di consequenza, qualsiasi operazione con dividendo < divisore ha come risultato
Codice:
000
con resto = dividendo?
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2008, 19:36   #2
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Be', direi proprio di sì... Cosa stai facendo, un circuito combinatorio?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2008, 20:44   #3
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
Esattamente, sto implementando un circuito per una calcolatrice binaria con operandi a 4 bit.
Addizione/sottrazione e moltiplicazione sono operazioni banali, il problema viene nella divisione...

Comunque la prima parte dell'errore è stata trovata... in realtà dovrei ottenere come risultato anche i numeri dopo la virgola, invece di ottenere quoziente più resto... Ho buttato giù una tabellina riassuntiva dei risultati e degli scarti dal valore corretto, ha operandi a 3 bit perchè a 4 veniva troppo lunga e non c'avevo voglia

Codice:
OP1	OP2	RISULTATO	DECIM.	SCARTO
----------------------------------------------
001	001	001.0000	1	0
001	010	000.1000	0.5	0
001	011	000.0101	0.3333	0.0208
001	100	000.0100	0.25	0
001	101	000.0011	0.2	0.0125
001	110	000.0010	0.1667	0.0417
001	111	000.0010	0.1428	0.0178
----------------------------------------------
010	001	010.0000	2	0
010	010	001.0000	1	0
010	011	000.1010	0.6667	0.0417
010	100	000.1000	0.5	0
010	101	000.0110	0.4	0.025
010	110	000.0101	0.3333	0.0208
010	111	000.0100	0.2857	0.0375
----------------------------------------------
011	001	011.0000	3	0
011	010	001.1000	1.5	0
011	011	001.0000	1	0
011	100	000.1100	0.75	0
011	101	000.1001	0.6	0.0375
011	110	000.1000	0.5	0
011	111	000.0110	0.4286	0.0536
----------------------------------------------
100	001	100.0000	4	0
100	010	010.0000	2	0
100	011	001.0101	1.333	0.0208
100	100	001.0000	1	0
100	101	000.1100	0.8	0.05
100	110	000.1010	0.6667	0.0417
100	111	000.1001	0.5714	0.0089
----------------------------------------------
101	001	101.0000	5	0
101	010	010.1000	2.5	0
101	011	001.1010	1.6667	0.0417
101	100	001.0100	1.25	0
101	101	001.0000	1	0
101	110	000.1101	0.8333	0.0208
101	111	000.1011	0.7143	0.0268
----------------------------------------------
110	001	110.0000	6	0
110	010	011.0000	3	0
110	011	010.0000	2	0
110	100	001.1000	1.5	0
110	101	001.0011	1.2	0.0125
110	110	001.0000	1	0
110	111	000.1101	0.8571	0.0446
----------------------------------------------
111	001	111.0000	7	0
111	010	011.1000	3.5	0
111	011	010.0101	2.3333	0.0208
111	100	001.1100	1.75	0
111	101	001.0110	1.4	0.025
111	110	001.0010	1.1667	0.0417
111	111	001.0000	1	0
----------------------------------------------
Il circuito ha come output 9 display a segmenti (Uno per il segno nella sottrazione, gli altri 8 per i valori binari)... Di conseguenza nella divisione invece di avere come risultato 4 display per il quoziente e 4 per il resto devo usare 8 display per il risultato, 4 sopra la virgola e 4 sotto...
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2008, 20:51   #4
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da Donbabbeo Guarda i messaggi
Ho buttato giù una tabellina riassuntiva dei risultati e degli scarti dal valore corretto, ha operandi a 3 bit perchè a 4 veniva troppo lunga e non c'avevo voglia
In effetti uscirebbe un tabellone enorme, hai fatto bene a tralasciarlo...
In caso di divisione per zero invece che risultato dai? Vedo che l'hai omesso dai possibili input.

Ma una curiosità: lo stai facendo per hobby/studio o è una cosa più seria? Perché se è la seconda, non ho certo l'esperienza per permettermi anche solo di consigliarti...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 29-06-2008 alle 20:55.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 30-06-2008, 00:50   #5
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da Donbabbeo Guarda i messaggi
ma di consequenza, qualsiasi operazione con dividendo < divisore ha come risultato
Codice:
000
con resto = dividendo?
Certo.
E' cosi' in qualsiasi base (giustamente i risultati delle operazioni sono indipendenti dalla base)

45/60 = 0 resto 45
5/9 = 0 resto 5
3/4 = 0 resto 3

Quote:
Esattamente, sto implementando un circuito per una calcolatrice binaria con operandi a 4 bit.
Comunque, se devi fare il calcolo della divisione in circuito combinatorio, ti consiglio di fare proprio l'algoritmo della divisione.
Ripassa quello che ci veniva insegnato alle elementari. Quello della calcolatrice e' identico, se non che e' in base 2 (che e' ancora piu' semplice della base 10).
Ovviamente la strada di memorizzarsi tutte le possibili combinazioni funziona... ma solo fino ad un certo punto.
Se invece di 3 bit fosse a 16 bit, dovresti memorizzare 4GB di dati, per la sola divisione a 16bit.
Pensa la 32bit...
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 30-06-2008, 00:57   #6
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Non serve effettivamente memorizzare quei dati, ma avendo un circuito che presenta 8 bit in input sugli ingressi (4+4 dei due operandi) puoi farti un bel tabellone e poi implementare un circuito che codifichi le funzioni booleane di tutti e 8 i bit da presentare in output... ma non so fino a che punto convenga un lavoraccio così.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 30-06-2008, 11:30   #7
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
Difatti la tabella era solo per avere un'idea di base sui vari risultati e capire bene o male come dovevo comportarmi.
In realtà come ho detto la divisione l'ho già implementata, ma i risultati han poco senso.

dividendo/(valore > dividendo) da come risultato sempre 0 e resto dividendo, che sebbene voi diciate sia corretto è in ogni caso un risultato poco significativo... Se io faccio 1/2 ed 1/3 i risultati sono diversi, mentre io ottengo il medesimo risultato.

Ho pensato perciò di ottenere 4 bit di risultato intero e 4 bit di risultato dopo la virgola, così da ottenere un risultato significativo e diverso per ogni divisione.

Qualche idea? E' meglio lasciar perdere? Come potrei impostare il circuito?
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso
Old 30-06-2008, 11:34   #8
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da Donbabbeo Guarda i messaggi
Difatti la tabella era solo per avere un'idea di base sui vari risultati e capire bene o male come dovevo comportarmi.
In realtà come ho detto la divisione l'ho già implementata, ma i risultati han poco senso.

dividendo/(valore > dividendo) da come risultato sempre 0 e resto dividendo, che sebbene voi diciate sia corretto è in ogni caso un risultato poco significativo... Se io faccio 1/2 ed 1/3 i risultati sono diversi, mentre io ottengo il medesimo risultato.

Ho pensato perciò di ottenere 4 bit di risultato intero e 4 bit di risultato dopo la virgola, così da ottenere un risultato significativo e diverso per ogni divisione.

Qualche idea? E' meglio lasciar perdere? Come potrei impostare il circuito?
1/2 e 1/3 danno entrambi 0, se si considera la matematica degli interi.
Se invece vuoi le virgole, allora di nuovo ti consiglio di studiare l'algoritmo della divisione delle elementari, che e' quello usato anche dai nostri processori.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 30-06-2008, 12:03   #9
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
Comincio a capirci qualcosa... In pratica io avrei implementato (senza neanche saperlo ) la divisione Euclidea...

Ho reinventato la divisione

A parte gli scherzi, proverò ad implementare la divisione trasformando il risultato in numero reale, ma non credo di fare in tempo per la consegna...

Proverò a contattare il professore e sentire un suo parere.

In ogni caso ogni consiglio è bene accetto e grazie ad entrambi
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:38   #10
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
Potreste semplificarmi questa equazione? Sono un caprone

ABC+AB'C'D'+A'B'CD'+A'BC'+BD = E

vorrei utilizzare pure xor, nor xnor o quello che è, non sono stato capace io
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:58   #11
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Non credo sia ulteriormente semplificabile, non mi sembra che ci siano termini a distanza di Hamming unitaria.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 19:57   #12
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
Grazie mille, ho già implementato tutto, ma risulta un pò complessa da decifrare
So che quello che ho fatto "dovrebbe" permettermi di calcolare la sottrazione su singolo bit, ma sebbene sia corretto non mi tornano i conti
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 20:36   #13
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
E allora non è corretto.
Il problema è che se ti scappa una connessione sbagliata salta tutto.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2008, 13:30   #14
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
scemo scemo scemo
Ehm... era tutto corretto quello che avevo già fatto, se non fosse che avevo invertito gli ingressi due volte e quindi alla fine tornava, ma prendendoli singolarmente non tornavano i conti
Comunque finito, consegnato e ricevuto i complimenti dal professore per il bel lavoro.



Volevo uppare lo schema qua, ma non posso allegarlo perchè troppo pesante, casomai qualcuno fosse interessato ( ) mi invii un pvt che glielo mando.

PS: grazie dell'aiuto ad entrambi
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
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: 12:58.


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