Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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.
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, a un prezzo molto basso
Titan Army P2712V è un monitor da 27 pollici che unisce due anime in un unico prodotto: da un lato la qualità visiva del 4K UHD a 160 Hz, dall'altro la velocità estrema del Full HD a 320 Hz. Con pannello Fast IPS, HDR400, Adaptive-Sync, illuminazione RGB e regolazioni ergonomiche, punta a soddisfare sia i giocatori competitivi che i content creator
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-10-2007, 13: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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 14:30.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2007, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 15: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, 15: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, 07: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


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...
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Meno soldi ai chip, più buche rip...
Figure 03 è il primo robot umanoi...
'Avidità e tradimento dei giocato...
Intel rivede la sua strategia open sourc...
Intel: ciclo di rilascio annuale per gli...
Intel XeSS 3 porta la Multi-Frame Genera...
PlayStation 6 e nuove Radeon, ecco le te...
New York porta in tribunale TikTok, Meta...
L'intelligenza artificiale canceller&agr...
Battlefield 6: analisi grafica e DLSS
Gauss Fusion presenta GIGA: l'Europa acc...
Lo sapete che anche le auto elettriche d...
Oltre un miliardo di dati sensibili sott...
iPhone 17, segni sui modelli in esposizi...
Sviluppatore Microsoft confessa: la cele...
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: 06:43.


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