Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C] conversioni

  1. #1

    [C] conversioni

    ho bisogno di creare un programmino in C in cui gli passo come input o dei numeri o delle parole e mi restituisce il valore in numero binario....si può fare? come posso fare?

    penso che funzinoa come per l'esadecimale che stampo in %X...vero?


    ciao ciao

  2. #2
    in C non esiste un operatore che ti permette
    di trasformare un numero da decimale in binario

    ma non ci vuole nulla a creare una funzioncina che lo faccia,

    basta recuperare il valore decimale del carattere ascii inserito
    da tastiera:

    char ascii='A';
    int decimal;

    decimal=(int)ascii; // <-- 65

    e ora scomponi il decimal (base 10) in binario (base 2)

    basta utilizzare l'operatore di modulo "%" e dividere per 2

    leggi qua:

    http://www.pegacity.it/informatica/assembly/tut1.htm
    ...Terrible warlords, good warlords, and an english song

  3. #3
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    char *retbin(long a)
    {
        long b = a;
        int i;
        char *str;
    
        for (i = 0; b; b >> 1, i++)
        ;
    
        str = (char*)calloc(i, sizeof(char));
    
        for (; i > -1; a >> 1)
            str[i] = (a & 1) + '0';
    
        return str;
    
    }
    
    
    int main()
    {
        char *p;
        p = retbin(500);
        printf("%s\n", p);
        free(p);
        return 0;
    }

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

  4. #4
    grazie a tutti per le risposte.


    il codice l'ho copiato, compilato ed eseguito però do il numero come input ma non mi ritorna la conversione in binario...


    ciao a tutti

  5. #5
    codice:
    #include <stdio.h>
    
    void main(){
    	
        int i=0, d='C', b[8];
    
        while(d>0){
    
            if(d%2)b[i]=1;
    	else b[i]=0;
    	d/=2;
    	i++;
        
        }
    
        for(i--; i>=0; i--)printf("%d",b[i]);
       
    }
    ...Terrible warlords, good warlords, and an english song

  6. #6
    Si scusami, in effetti c'era qualche errore, ma scrivere codice al volo non e' mai stato il mio forte. Eccoti il code funzionante e completo:

    codice:
    #include <stdio.h> 
    #include <stdlib.h> 
    
    
    char *retbin(long a)
    { 
    
        long b = a; 
        int i; 
        char *str; 
        for (i = 0; b; b >>= 1, i++)
            ;
    
        str = (char*)calloc(i, sizeof(char)); 
    
        do
        {
            str[i-- - 1] = (a & 1) + '0'; 
            a >>= 1;
        } while (a); 
    
        return str; 
    } 
    
    
    int main() 
    { 
    
        char *p; 
        p = retbin(3); 
        printf("%s\n", p); 
        free(p); 
        return 0; 
    }

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

  7. #7
    codice:
    char * itobs(int c)
    {
    	int i = sizeof(int)* 8;
    	char * str, *k;
    
    	if(c!=0)
    		while(c > 0)		
    		{
    			c <<= 1;
    			--i;	
    		}
    	else 
    		i=1;
    	
    	str = malloc(i+1);
    	if(!str)return NULL;
    
    	for(k=str; i>0; --i, c <<= 1)	
    		*k++ = (c<0) + '0'; 
    	
    	*k='\0';
    	return str;
    }
    E' incredibile in quanti modi si possa fare.....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.