Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    50

    [C] estrarre i bit meno significativi

    salve,
    implementando questo codice, sn arrivato che il mio short A, per esempio è 5, quando lo chiamo nella funzione bit_short, mi modifica il suo valore con 0, quindi prima che modifica il valore me lo salvo nella variabile b.
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define n_len 8
    void bit_short(short *n, unsigned char bit[n_len]);
    void estrai_bit_meno_sign( short *, short k, unsigned char bit[n_len]);
    int main()
    {
      short A,k,i,b;
      unsigned char bit[n_len];
      printf("numero:"); scanf("%d",&A);
      b=A;                                          //mi salvo il valore di A prima che lo perdo nella bit_short
      bit_short(&A,bit);
      printf("in binario:");
      for(k=0; k<n_len; k++)
      (k%4==0) ? printf(" %1u",bit[k]): printf("%1u",bit[k]);
      printf("\n");                                                          
      
      
      printf("quanti bit meno significativi vuoi estrarre?  :");
      scanf("%d",&k);
      
      
      printf("i bit meno significativi: ");
      estrai_bit_meno_sign(&b,k,bit);
    printf("\n");
    
    
      system("PAUSE");	
      return 0;
    }
    
    
    void bit_short(short *n, unsigned char bit[n_len])
    {
         short j;
         j=n_len-1;
         do        {
                   bit[j--]=*n&1;
                   *n=*n>>1;
                   } while(*n !=0 && j>=0);
         if(j>=0)
         {
         do{
                   bit[j--]=0;
         } while(j>=0);
         }
    }
    
    
    void estrai_bit_meno_sign(short *n, short k,unsigned char bit[n_len])
    {unsigned short mask=~((~0u)<<k);              // mi creo una maskera
    short i;
       for(i=0; i<k; i++){
       bit[i]=*n&mask;                                  //faccio l'and della mia variabile con la maskera
       printf("%u",bit[i]);          
    }
    }
    come faccio a visualizzare solo quei bit che mi interessano?
    codice:
    code

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    non faccio commenti (così evito le rampogne)... ma quel programma è un pochino... come dire... non semplicissimo da capire

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Si sta già affrontando il medesimo problema in questa discussione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.