Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] Operatore and, bit a bit

    Ciao a tutti.
    ho fatto una ricerca nel forum ma non mi sembra ci sia quello che mi interessa.
    Forse la domanda è banale, ma anche gli errori banali rendono inutilizzabile qualsiasi riga di codice.

    Il Kernighan dice:
    codice:
    n = n & 0177;
    azzera tutti i bit di n esclusi i 7 meno sgnificativi. Ma cosa c'entra 0177 con gli ultimi 7 bit? Che credo siano gli ultimi a destra,vero?
    0177 non è un numero espresso nel sistema binario...
    insomma mi serve una mano
    Grazie

  2. #2
    Non vorrei dire una belinata ma 0177 è un numero nel sistema ottale (a causa dello 0 in testa), quindi vale in binario 1111111, e quindi lascia i 7 bit meno significativi e azzera gli altri (dal post non si evince il tipo di n, se è un char azzera il bit più significativo, se short i 9 bit più significativi etc.)

  3. #3
    Innanzitutto, grazie Fast

    Originariamente inviato da fastcoder
    Non vorrei dire una belinata ma 0177 è un numero nel sistema ottale (a causa dello 0 in testa), quindi vale in binario 1111111, e quindi lascia i 7 bit meno significativi e azzera gli altri
    Ma al posto del numero in ottale posso mettere un numero di qualsiasi sistema, tipo decimale, esages. o devo usare per forza gli ottali?

    Originariamente inviato da fastcoder
    (dal post non si evince il tipo di n,
    Mi spiace non è specificato nel testo

    originariamente inviato da fastcoder
    se è un char azzera il bit più significativo, se short i 9 bit più significativi etc.)
    se è un char azzera il bit più significativo perchè il char è di otto bit? e lo short di 16? vero?

    GRazie ancora

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da Feddozz
    Ma al posto del numero in ottale posso mettere un numero di qualsiasi sistema, tipo decimale, esages. o devo usare per forza gli ottali?
    Puoi usare una qualsiasi base (ovviamente convertendo il valore dell'esempio).
    Nell'esempio che hai mostrato e' usato l'ottale che, ovviamente, non e' obbligatorio.

    Originariamente inviato da Feddozz
    se è un char azzera il bit più significativo perchè il char è di otto bit? e lo short di 16? vero?

  5. #5
    Grazie

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.