câmp de biți - l

Apel către câmpurile de biți necesită instruire suplimentară procesor pentru a masca și schimbare, și, prin urmare, trimiterile mai lent la cuvinte / bytes. Prin urmare, câmpurile de biți sunt utilizate pentru pachetul cel mai complet de informații în locuri în care viteza nu este importantă accesul la informație.

Compilatoare de obicei, limita de funcționare cu îndepărtarea doar câmpurile de biți în valoare de câmp de biți și valoarea de intrare într-un câmp de biți și un câmp de biți în sine este percepută ca un întreg fără semn. Ordinea reală a câmpurilor de biți din structura este un sistem dependent: în unele compilatoare câmpuri de biți pot fi aranjate pornind de biții cei mai puțin semnificativi, iar în celelalte - cu varsta.

Operațiuni pe domenii de multi-bit

Să presupunem că un octet trei câmpuri de biți: 1-bit și b. 2 c-bit și 4 biți d. adică.

Construiți un număr de câmpuri de biți

calculatoare binare au de obicei un comenzi de cuplare-biți, care vă permit să se multiplice rapid în puterea de doi - .. 2, 4, 8, etc., în loc de a adăuga o comandă puteți utiliza logică „SAU“. Astfel, numărul x pot fi colectate într-un mod diferit:

Extragerea câmpul de biți

Pentru a extrage necesitatea de câmp de biți care să dețină două operațiuni:

  1. Înmulțiți logic „și“ numărul de masca de biți - un număr care se clasează în unitățile respective, și zerourile rămase.
  2. Conduita bitwise deplasare dreapta.
  1. Conduita bitwise deplasare dreapta.
  2. logica operațiune Multiply „ȘI“ număr în lungime de biți masca corespunzătoare.

Pentru câmpurile primare nu au nevoie de un operator de schimbare, și anume:

Pentru mai în vârstă domenii de schimbare la nivel de bit în sine, fără a înmulțind cu masca, curata x biți inutile - adică,

Înlocuirea câmp de biți

  1. x clare din valoarea anterioară a înmulțirii bitwise cu zerouri pe masca din biții corespunzători.
  2. Bitwise pliat x cu noua valoare (deplasată la numărul dorit de biți)

De exemplu, dacă trebuie să înlocuim d.

Operațiuni de peste câmpuri de un bit

Domenii a și b sunt de lungime 1 bit - acest lucru le permite să lucreze cu alte mijloace.

Testarea biți individuale

Pentru a verifica este necesar să se multiplice operațiunea x nivel de bit „și“ de pe masca, pe care o unitate - poziția corespunzătoare. Dacă este activată 0 bit este 0.

Verificați pentru a vedea dacă unitatea este de cel puțin un pic de câteva:

Verificați dacă toți biții sunt egale cu una din câteva:

Setarea biți

Pentru a face acest lucru, se adaugă până operațiunea „OR» x cu o masca, care are unități în poziții corespunzătoare. De exemplu, pentru a permite biți a:

Pentru a activa și a. și b:

Eliminarea biți

Pentru a elimina unul sau mai mulți biți, este necesar să se stabilească x funcționare „și“ cu masca, care in pozitiile zero-uri corespunzătoare. În mod specific, pentru a opri biți b. aveți nevoie pentru a da comanda:

comutare biți

Pentru a comuta biți (de la 0 la 1, 1 la 0), este necesar să se stabilească o echipă x „XOR“ cu masca, care în pozițiile respective ale unității. De exemplu, bitul b este pornit după cum urmează:

Manipulând câmpurile iconice în două lui

Există două moduri de a stoca numere întregi negative, - un bit de semn și un cod suplimentar. În marea majoritate a mașinilor moderne utilizate în al doilea rând. Când scrieți numere negative avem cod suplimentar:

Considerăm că domeniile c și d au exact acest format. Apoi câmpul c poate păstra numărul 2 = 102 și 1 = 012. iar câmpul d - -8-7 = 10002 = 01112.

Numerele de asamblare și de înlocuire

Fiecare dintre termenii (altele decât senior), asa ca nu strica biții mai semnificativi, este necesar pentru a se multiplica printr-o mască de biți de lungime corespunzătoare. În special:

numerele de extracție

Pentru a extrage numerele necesare pentru a deplasa câmpul la numărul dorit de biți la dreapta, în același timp, înmulțindu bitul de semn. De exemplu, în acest scop, puteți utiliza o schimbare aritmetică. Dacă x are o lungime de 8 biți,

Atenție! Limbajul de programare Java este exact opusul: un semn >> desemnat trecerea aritmetică, semnul >>> - simplu.

În cazul în care trecerea aritmetică nu este, atunci ...

Limba C / C ++

Declarația unui câmp de biți utilizat de două puncte, urmată de expresia constantă specifică numărul de biți în [1];

notițe

Pentru a îmbunătăți acest articol, este de dorit.

Vezi ce „câmp de biți“ în alte dicționare:

bitfield - octeții Adiacent sau biți din secvența de cod sunt decodificate în ansamblu și sunt fie de sensul abstract, sau conțin informații necesare pentru decodare de succes sau reprezintă ambele. Notă ... ... Traducator tehnic

Field (valoare) - concept de câmp multivaloare legat de lungime în spațiu: Concept câmp matematică structură algebrică cu două operații. Scalar, vector și tensor câmpuri în geometrie diferențială (vezi. Vectorul și tensor) și analiza matematică ... Wikipedia

Domeniul (calculator) - concept de câmp multivaloare legat de lungime în spațiu: Conceptul de câmp matematică structură algebrică cu două operații. Scalar, vector și tensor câmpuri în geometrie diferențială (vezi. Vectorul și tensor) și analiza matematică ... Wikipedia

Golf - Golf-evaluate Conceptul legat de lungimea în câmpul spațiu în Wikționar Wikipedia ...