Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [java] sintassi

  1. #1

    [java] sintassi

    Salve a tutti
    Qualcuno sa dirmi cosa significa questa riga di codice?

    totalRed += pixels[i]>>16 & 0xff;

    Grazie infinite

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    suppongo tu stia trattando grafica ed in particolare i colori.
    Quella riga prende il valore di pixels[i], lo sposta bit a bit di 16 posizioni.
    Esempio

    int i = 35
    i >> 2 = 8

    questo si vede bene in binario

    35 = 00100011 >> 2 = 00001000
    e 00001000 = 8

    l'operazione & invece serve da "maschera"... in quanto resituirà solo gli ultimo 8 bit del numero risultante dallo spostamento a destra.
    Ciao
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Originariamente inviato da Andrea1979
    l'operazione & invece serve da "maschera"... in quanto resituirà solo gli ultimo 8 bit del numero risultante dallo spostamento a destra.
    Anzitutto grazie infinite per avermi risposto
    Oggi dopo svariati tentativi avevo capito che facendo a >> b non facevo altro che [a/(2^b)] ma non avevo minimamente immaginato che fosse lo shift a destra di 'a'!
    Perchè & 0xff restituisce solo gli ultimi 8 bit del risultato?
    che funzione ha 0xff?
    ...anzi senza che ti faccio una valanga di domande, non è che mi sapresti indicare della documentazione online per imparare a lavorare bene con le immagini?
    Sei veramente molto gentile
    Grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora ti faccio un altro esempio su & 0xff

    Facciamo finta che tu abbia un numero abbastanza grande e che dopo lo shit a destra di sedici posizioni ti resti

    0011 0101 1111 1010

    a questo punto, se fai l'operazione di AND a bit a bit, come con &0xff è come se facessi così

    0011 0101 1111 1010 &
    0000 0000 1111 1111
    --------------------
    0000 0000 1111 1010

    ossia dalla maschera vengono fuori solo gli ultimi 8 bit del numero, mentre i primi 8 sono posti a 0 (perchè x AND 0 da 0). In altre parole, all'uscita hai sempre un numero di 8 bit, nel range 0-255 che va benissimo per descrivere un canale di colore.
    Ciao!

    PS: per quanto riguarda la programmazione java e relativa documentazione, fa un salto nella sezione programmazione di html.it e vedi un po' lì. Ovviamente, visita anche

    http://java.sun.com

    a casa sun hanno un sacco di tutorial e forum specifici per ogni tipo di esigenza in java. Ciao!
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Sei stato di una gentilezza infinita!
    Non so come ringraziarti
    Spero di trovare della documentazione adeguata, anche perchè sono agli inizi sulla programmazione su immagini (come avrai facilmente intuito ), quindi questi non saranno gli unici problemi che troverò
    Grazie ancora

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.