Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-10-2007, 14:57   #1
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
[C] bit shit

Ho qualche dubbio sullo shift del C

ho un buffer di 128*128 bit, ogni bit corrisponde ad una casella di una matrice 128*128

Devo leggere il buffer e, per ogni bit, se 1 setto la relativa casella della matrice a 1 altrimenti a 0.

Il buffer è unsigned char.

Qual'è il sistema piú efficace ?

grazie
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:03   #2
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Ho qualche dubbio sullo shift del C

ho un buffer di 128*128 bit, ogni bit corrisponde ad una casella di una matrice 128*128

Devo leggere il buffer e, per ogni bit, se 1 setto la relativa casella della matrice a 1 altrimenti a 0.

Il buffer è unsigned char.

Qual'è il sistema piú efficace ?

grazie
ti conviene fare buf[i][j] && 0x<val> == 0 per testare se in una certa posizione c'è 1 o 0... <val> è tale che la sua rappresentazione binaria contenga tutti 0 tranne un 1 nella posizione desiderata.

spero di aver capito cosa ti serviva, ma non ho capito perchè parlavi di shift...

comunque il titolo mi ha fatto morire dal ridere
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:04   #3
marko.fatto
Senior Member
 
L'Avatar di marko.fatto
 
Iscritto dal: Jul 2007
Messaggi: 499
Certo che ti stan proprio sulle balle sti bit
__________________
marko.fatto è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:07   #4
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
ti conviene fare buf[i][j] && 0x<val> == 0 per testare se in una certa posizione c'è 1 o 0... <val> è tale che la sua rappresentazione binaria contenga tutti 0 tranne un 1 nella posizione desiderata.

spero di aver capito cosa ti serviva, ma non ho capito perchè parlavi di shift...

comunque il titolo mi ha fatto morire dal ridere
Quote:
Originariamente inviato da marko.fatto Guarda i messaggi
Certo che ti stan proprio sulle balle sti bit
ops
vabbè, lapsus, stavo smadonnando

buf[i][j] non va bene perchè il buffer è un array
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:11   #5
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da trallallero Guarda i messaggi
ops
vabbè, lapsus, stavo smadonnando

buf[i][j] non va bene perchè il buffer è un array
allora leggi buf[i] e scrivi matrice[i / 128][i % 128] dove la divisione è intera!!
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:16   #6
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
allora leggi buf[i] e scrivi matrice[i / 128][i % 128] dove la divisione è intera!!
eh ?

in buf[i] ci sono 8 bits, ognuno corrisponde ad una casella della matrice
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:22   #7
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da trallallero Guarda i messaggi
eh ?

in buf[i] ci sono 8 bits, ognuno corrisponde ad una casella della matrice
hai ragione, ho scritto la classica stronzata
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:24   #8
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
fammi capire la struttura dati sarebbe unsigned char[128][16]? (16*8=128)
oppure un array su una sola dimensione: unsigned char[2048]? ((128/8)*128=2048)

Ultima modifica di Furla : 30-10-2007 alle 15:30.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:27   #9
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
allora, spiego meglio e poi posto quello che sto facendo.

Ho un buffer unsigned char lungo 2048 bits.
Il primo bit corrisponde alla casella [0][0] della matrice, il secondo alla [0][1] etc etc. Quindi devo leggere tutti i bits, uno dopo l'altro ed assegnare 1 oppure 0 alla relativa casella
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:28   #10
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
hai ragione, ho scritto la classica stronzata
non l'ho detto io (ma l'ho pensato)

ma è normale, uno pensa di sapere ste cose ma non le usa mai, una volta che le devi scrivere diventa un casino. E non trovo esempi in rete
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:31   #11
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
leggi buf[i], poi per j che va da 0 a 7 testi il bit j-esimo in buf[i] e scrivi in matrice[i * 8 / 128][(i * 8 % 128) + j]

spero di non aver detto altre cazzate
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:33   #12
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da trallallero Guarda i messaggi
non l'ho detto io (ma l'ho pensato)

ma è normale, uno pensa di sapere ste cose ma non le usa mai, una volta che le devi scrivere diventa un casino. E non trovo esempi in rete
caspita, so leggere nel pensiero !!!!!!!!!

il fatto è che ti fai una rappresentazione mentale semplicissima che però non corrisponde alle strutture dati in memoria
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:38   #13
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
leggi buf[i], poi per j che va da 0 a 7 testi il bit j-esimo in buf[i] e scrivi in matrice[i * 8 / 128][(i * 8 % 128) + j]

spero di non aver detto altre cazzate
è quello che stavo facendo infatti (a parte il calcolo per le coordinate, grazie ) ma mi sembra un pò laborioso ... magari esiste un metodo migliore
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:44   #14
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da trallallero Guarda i messaggi
è quello che stavo facendo infatti (a parte il calcolo per le coordinate, grazie ) ma mi sembra un pò laborioso ... magari esiste un metodo migliore
puoi sempre tenere due contatori, uno per la riga e uno per la colonna, da incrementare in modo opportuno
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 15:56   #15
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
puoi sempre tenere due contatori, uno per la riga e uno per la colonna, da incrementare in modo opportuno
si, preferisco la leggibilitá
alla fine ho fatto cosí:

Codice:
	
	for( y = 0; y < 128; y++)
	{
		for( x = 0; x < 128; x++, c >>= 1)
		{
			if ((x) % 8 == 0)
			{
				n++;
				c = s[n];
			}
			mat[y][x] = c & 0x01;
		}
		
	}
grazie per il supporto
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 16:04   #16
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da trallallero Guarda i messaggi
si, preferisco la leggibilitá
alla fine ho fatto cosí:

Codice:
	
	for( y = 0; y < 128; y++)
	{
		for( x = 0; x < 128; x++, c >>= 1)
		{
			if ((x) % 8 == 0)
			{
				n++;
				c = s[n];
			}
			mat[y][x] = c & 0x01;
		}
		
	}
grazie per il supporto
bello!
ragionavo dalla prospettiva sbagliata: dal buffer alla matrice... pensando al contrario il codice risulta molto più semplice e leggibile... bravo
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 16:06   #17
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
bello!
ragionavo dalla prospettiva sbagliata: dal buffer alla matrice... pensando al contrario il codice risulta molto più semplice e leggibile... bravo
beh, grazie ma è frutto anche della collaborazione sul forum
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 08:00   #18
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
perfetto, ieri ho fatto le mie funzioni per la matrice, le maschere AND e OR etc etc e ... son cambiate le specifiche (con tanto di litigata col tipo "so tutto io")

non è più una matrice 128 * 128 di interi ma ... di bit.

quindi ho pensato: non faccio una matrice ma un buffer identico a quello che mi arriva così faccio una memcpy e taglio la testa al toro, ma c'è un problema:
il buffer di bit che mi arriva deve essere copiato nel mio buffer passando attraverso 2 maschere di bit (AND e OR) quindi chiedo:
esiste una memcpy speciale che utilizza maschere di bit ?

non so se mi sono capito bene

posso farmela anche da solo ma se esiste già di sistema sicuramente è più veloce
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Microsoft: ricavi record a 92,3 miliardi...
L'IA fa esplodere gli utili di Samsung: ...
Cronos: Lazarus ha una data di uscita: i...
Google aggiorna la privacy: i dati di Gm...
Ubuntu Core Desktop torna in vita: anche...
Intel Moon Lake: le prime indiscrezioni ...
Motorola Signature 27 e Razr Flex: svela...
Il menu che tutti chiedevano da anni arr...
GitHub fa i conti con il boom dell'IA: a...
Samsung valuta due strade per Galaxy Z F...
Reddit sdoppia la home: arrivano i feed ...
NVIDIA apre Nemotron 3.5 Transcribe: 40 ...
Qwen3.8 27B dice di voler veder bruciare...
PS Plus Essential: svelati i tre giochi ...
Instagram fa sul serio e sfida YouTube: ...
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:23.


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