Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS e HIFIMAN uniscono le forze per creare ROG Kithara, cuffie gaming con driver magnetici planari da 100mm, design open-back e microfono MEMS full-band. Una proposta che ambisce a coniugare fedeltà per audiofili e performance ludiche, disponibili a 319 euro
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-02-2008, 15:26   #1
SitSpin
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 5
help! contatore in binario

ciao a tutti,
ho bisogno di realizzare un modulo in linguaggio C che funzioni come un contatore binario a 32 bit. Mi servono le stringhe di '01010101.......'
da 32 bit che tale contatore dovrebbe produrre per poi usarle in un trasferimento che usa le socket.
Fare un contatore decimale è facilissimo...basta fare un ciclo for...
ma per farlo in binario come faccio??
potete darmi un suggerimento o un esempio?
Grazie mille.
SitSpin è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 15:34   #2
Volutomitra
Member
 
Iscritto dal: Feb 2006
Messaggi: 134
Quote:
Originariamente inviato da SitSpin Guarda i messaggi
ciao a tutti,
ho bisogno di realizzare un modulo in linguaggio C che funzioni come un contatore binario a 32 bit. Mi servono le stringhe di '01010101.......'
da 32 bit che tale contatore dovrebbe produrre per poi usarle in un trasferimento che usa le socket.
Fare un contatore decimale è facilissimo...basta fare un ciclo for...
ma per farlo in binario come faccio??
potete darmi un suggerimento o un esempio?
Grazie mille.
Con un ciclo for? Il valore di un numero non cambia se cambia la sua rappresentazione...
Volutomitra è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 15:37   #3
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
non ho ben capito cosa devi contare ...

Puoi essere più specifico?
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 15:42   #4
SitSpin
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 5
cioè mi serve un codice C che mi generi tutte stringhe di bit di 32 caratteri in ordine crescente come fosse un contatore:
'00000000000000000000000000000000'
'00000000000000000000000000000001'
'00000000000000000000000000000010'
......

SitSpin è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 15:43   #5
Albi89
Senior Member
 
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
Scusa non puoi prendere il valore del contatore e convertirlo in binario con le funzioni di libreria quando devi utilizzarlo?
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
--Gerald Weinberg
Albi89 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 15:46   #6
SitSpin
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 5
che funzione di conversione, e che libreria posso usare?
cioe faccio

for(i=0;i<tot;i++)
printf("%d", i);

e poi converti(i)...

la funzione 'converti' dove la trovo?
SitSpin è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:00   #7
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
itoa (int value, char * str, int base );

Ma non ricordo se e' del C++ o se c'e' anche nel C
__________________
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 11-02-2008, 16:02   #8
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Prova questa funzione (incrementstr32) .

Ecco il programmino di esempio :

Codice:
#include <stdio.h>
#include <string.h>

void incrementstr32(char* str);

int main() {
	char str[] = "00000000000000000000000000000000";
	int i;
	printf("%s\n", str);
	for (i = 0; i < 1000000000; i++)
	{
		incrementstr32(str);
		printf("%s\n", str);
	}
}

void incrementstr32(char* str)
{
	int counter = 0;

	if (strlen(str) != 32)
		return;
	
	for ( counter = 31; counter >= 0; counter-- ) {
		if ( str[counter] == '0')
		{
			str[counter] = '1';
			counter = -1;
		}
		else
		{
			str[counter] = '0';
		}
	}  	
		
}
Non tiene assolutamente conto di possibili overflow.

Gli dai in pasto la stringa di partenza e lui la incrementa di 1 . la stringa deve essere lunga 32 caratteri

Ciao

EDIT: Ti consiglio di abbassare un po' il valore di comparazione del primo for del main se non vuoi andare avanti ore
__________________
GPU Compiler Engineer

Ultima modifica di AnonimoVeneziano : 11-02-2008 alle 16:04.
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:08   #9
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ah, cambia il nome del thread mettendo il nome del linguaggio tra parentesi (ad esempio "[C]help! contatore in binario" ) altrimenti te lo chiudono

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:12   #10
SitSpin
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 5
grazie!
SitSpin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Il telescopio spaziale Hubble, Euclid e ...
Il telescopio spaziale James Webb ha oss...
Mike Fincke era l'astronauta di Crew-11 ...
WhatsApp colma una sua lacuna: stanno pe...
Panasonic LUMIX DMW-DMS1: il nuovo micro...
Samsung preferisce vendere ad altri le s...
OpenAI vince contro xAI (per ora): l'azi...
Electronic Arts domina la classifica dei...
Micron annuncia le GDDR7 da 3 GB fino a ...
Tempi di intrusione ulteriormente ridott...
Smartwatch: il mercato cresce, Apple si ...
Stellaris sarà la prima centrale ...
HUAWEI Band 11 e 11 Pro ufficiali: le no...
Assetto Corsa Rally si aggiorna con Mont...
Roborock Saros 20 Set a 1.289€ invece di...
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: 22:44.


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