Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
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


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...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
L'intelligenza artificiale ha reso pi&ug...
L'intelligenza artificiale per lo svilup...
Il sistema di verifica dell'identit&agra...
Ora è ufficiale: Samsung sta per ...
Motorola Edge 70 Fusion: ecco le specifi...
8TB a meno di 170€: il richiestissimo Ha...
Il nuovo MacBook 'low cost' arriver&agra...
Pokémon Rosso Fuoco e Verde Fogli...
Risparmiare con le offerte Amazon: weeke...
Gli Xiaomi 17 arrivano a fine febbraio, ...
48.000 Pa a poco più di 100€: la ...
PC più potente, meno spesa: su Amazon to...
Con 2 acquisti si ottiene il 40% di scon...
Blocco VPN in Spagna durante le partite ...
ECOVACS DEEBOT T30C OMNI GEN2 torna a 34...
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: 18:47.


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