Fra et talsystem til et andet. Konverter hurtigt et tal fra decimaltalsystemet til binært

Til hurtigt at konvertere tal fra decimalsystem Tal i binær, du skal kende tallene "2 til magten" godt. For eksempel, 2 10 =1024 osv. Dette giver dig mulighed for at løse nogle oversættelseseksempler bogstaveligt på få sekunder. En af disse opgaver er Problem A1 fra USE-demoen 2012. Du kan selvfølgelig tage lang og kedelig tid at dividere et tal med "2". Men det er bedre at beslutte anderledes, hvilket sparer værdifuld tid på eksamen.

Metoden er meget enkel. Dens essens er dette: hvis det tal, der skal konverteres fra decimalsystemet er lig med tallet "2 i potensen", så er dette tal i binært system indeholder et antal nuller svarende til en potens. Vi tilføjer et "1" foran disse nuller.

  • Lad os konvertere tallet 2 fra decimalsystemet. 2=2 1. Derfor indeholder et tal i det binære system 1 nul. Vi sætter "1" foran og får 10 2.
  • Lad os konvertere 4 fra decimalsystemet. 4=2 2. Derfor, i det binære system, indeholder et tal 2 nuller. Vi sætter "1" foran og får 100 2.
  • Lad os konvertere 8 fra decimalsystemet. 8=2 3. Derfor indeholder et tal i det binære system 3 nuller. Vi sætter "1" foran og får 1000 2.


Tilsvarende for andre numre "2 til magten".

Hvis tallet, der skal konverteres, er mindre end tallet "2 i potensen" med 1, så består dette tal i det binære system kun af enheder, hvis antal er lig med potensen.

  • Lad os konvertere 3 fra decimalsystemet. 3=22-1. Derfor, i det binære system, indeholder et tal 2 enere. Vi får 112.
  • Lad os konvertere 7 fra decimalsystemet. 7=23-1. Derfor, i det binære system, indeholder et tal 3 enere. Vi får 1112.

På figuren angiver firkanterne binær repræsentation tal, og til venstre i pink er decimal.


Oversættelsen er den samme for andre numre "2 til power-1".

Det er klart, at oversættelsen af ​​tal fra 0 til 8 kan udføres hurtigt eller ved division, eller blot kender deres repræsentation udenad i det binære system. Jeg gav disse eksempler, så du forstår princippet denne metode og brugte det til at oversætte mere "imponerende tal", for eksempel til at oversætte tallene 127,128, 255, 256, 511, 512 osv.

Du kan støde på sådanne problemer, når du skal konvertere et tal, der ikke er lig med tallet "2 til magten", men tæt på det. Det kan være større eller mindre end 2 til magten. Forskellen mellem det oversatte tal og tallet "2 til magten" bør være lille. For eksempel op til 3. Repræsentationen af ​​tal fra 0 til 3 i det binære system skal blot kendes uden oversættelse.

Hvis tallet er større end , så løs sådan:

Først konverterer vi tallet "2 til magten" til det binære system. Og så tilføjer vi forskellen mellem tallet "2 til magten" og tallet, der bliver oversat.

Lad os for eksempel konvertere 19 fra decimalsystemet. Det flere tal"2 til magten" med 3.

16=2 4 . 16 10 =10000 2 .

3 10 =11 2 .

19 10 =10000 2 +11 2 =10011 2 .

Hvis tallet er mindre end tallet "2 til magten", så er det mere bekvemt at bruge tallet "2 til magten-1". Vi løser det sådan her:

Først konverterer vi tallet "2 til power-1" til det binære system. Og så trækker vi forskellen mellem tallet "2 i potensen af ​​1" fra det og tallet, der oversættes.

Lad os for eksempel konvertere 29 fra decimalsystemet. Det er 2 større end tallet "2 til power-1". 29=31-2.

31 10 =11111 2 .

2 10 =10 2 .

29 10 =11111 2 -10 2 =11101 2

Hvis forskellen mellem tallet, der oversættes, og tallet "2 til magten" er mere end tre, kan du opdele tallet i dets komponenter, konvertere hver del til det binære system og tilføje.

Konverter for eksempel tallet 528 fra decimalsystemet. 528=512+16. Vi oversætter 512 og 16 separat.
512=2 9 . 512 10 =1000000000 2 .
16=2 4 . 16 10 =10000 2 .
Lad os nu tilføje det i en kolonne:

Tags: Talsystem, oversættelse af talsystem, relaterede talsystemer

Ændring af grundlaget for positionsnummersystemer

I positionssystem i radix q kan et tal repræsenteres som et polynomium

… + a 2 ∙q 2 + a 1 q 1 + a 0 ∙q 0 + a -1 ∙q -1 + a -2 ∙q -2 + …

hvor koefficienterne a i er cifrene i talsystemet med grundtallet q.

For eksempel i decimaltalsystemet

124.733 = 1∙10 2 + 2∙10 1 + 4∙10 0 + 7∙10 -1 + 3∙10 -2 + 3∙10 -3

Antallet af cifre i et talsystem med grundtallet q er lig med q, og det maksimale ciffer er q - 1. Et ciffer kan ikke blive lig med q, fordi enheden i dette tilfælde vil blive overført til et nyt ciffer.

For eksempel skal du finde minimumsgrundlaget for det talsystem, som tallet 7832 er skrevet i. Da det maksimale ciffer er 8, så minimumsværdi q = 8 + 1 = 9.

Grundlaget for et talsystem kan i princippet være et hvilket som helst tal: heltal, negativ, rationel, irrationel, kompleks osv. Vi vil kun overveje positive heltalsbaser.

Af særlig interesse for os vil være basis 2 og baserne, der er potenser af to - 8 og 16.

I tilfælde af basen med. Med. mere end ti, så tages nye tal i rækkefølge fra alfabetet. For det hexadecimale system vil disse f.eks. være tallene 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Konvertering af hele delen af ​​decimaltalsystemet

Den første måde at konvertere fra decimaltalsystemet til n-ært talsystemet er at sekventielt dividere tallet med et nyt grundlag.

123/12 = 10 (3) 10/12 = 0 (10=A)

Vi samler ind omvendt rækkefølge, først den sidste værdi (dette er 0), derefter fra top til bund alle de resterende. Vi får 0A3 = A3

4563/8 = 570 (3) 570/8 = 71 (2) 71/8 = 8 (7) 8/8 = 1 (0)

Sætter vi det sammen igen, får vi 10723

3349 10 → X 16

3349/16 = 209 (5) 209/16 = 13 (1) 13/16 = 0 (13 = D)

At sætte det sammen: 0D15 = D15

545/2 = 272 (1) 272/2 = 136 (0) 136/2 = 68 (0) 68/2 = 34 (0) 34/2 = 17 (0) 17/2 = 8 (1) 8/2 = 4 (0) 4/2 = 2(0) 2/2 = 1 (0) 1/2 = 0(1)

Vi indsamler 01000100001 = 1000100001

Oversættelse på papir udføres normalt ved at opdele i en kolonne. Indtil divisionen resulterer i nul, divideres hvert efterfølgende svar med grundtallet c. Med. Til sidst samles svaret fra resten af ​​divisionen.

Det er også ofte muligt at konvertere et tal til et andet s. Med. , hvis vi mentalt forestiller os det som summen af ​​potenser af den tilsvarende base, som vi vil konvertere tallet til.

For eksempel er 129 indlysende 128 + 1 = 2 7 + 1 = 10000001 2

80 = 81 - 1 = 3 4 - 1 = 10000 - 1 = 2222 3

Konvertering af en heltalsdel til decimaltalsystemet

Oversættelsen udføres ved hjælp af repræsentationen af ​​tallet i positionsnummersystemet. Lad det være nødvendigt at oversætte A3 12 → X 10 Det er kendt, at A3 er 3∙q 0 + A∙q 1, det vil sige 3*1 + A*12 = 3 + 120 = 123

10723 8 → X 10

1∙q 4 + 0∙q 3 + 7∙q 2 + 2∙q 1 + 3∙q 0 = 1∙8 4 + 0 + 7∙8 2 + 2∙8 + 3 = 1∙4096 + 7∙64 + 2∙8 + 3 = 4563

D∙16 2 + 1∙16 1 +5∙16 0 = 13∙256 + 16 + 5 = 3349

1000100001 2 → X 10

2 9 + 2 5 + 1 = 512 + 32 + 1 = 545.

Oversættelse på papir udføres normalt som følger. Gradnummeret skrives i rækkefølge over hvert tal. Så er alle vilkårene skrevet ud.

Konvertering af brøkdelen fra decimalsystemet

Når man konverterer en brøkdel, opstår der ofte en situation, hvor en endelig decimalbrøk bliver til en uendelig. Derfor er det normalt ved oversættelse angivet nøjagtigheden, som det er nødvendigt at oversætte med. Oversættelsen udføres ved sekventielt at multiplicere brøkdelen med bunden af ​​talsystemet. Hele delen samtidig foldes den tilbage og bliver en del af skuddet.

0,625 10 → X 2

0.625 * 2 = 1.250 (1) 0.25 * 2 = 0.5 (0) 0.5 * 2 = 1.0 (1)

0 – yderligere multiplikation vil kun give nuller
Ved at samle fra top til bund får vi 0,101

0,310 → X2 0,3 * 2 = 0,6 (0) 0,6 * 2 = 1,2 (1) 0,2 * 2 = 0,4 (0) 0,4 * 2 = 0,8 (0) 0,8 * 2 = 1,6 (1) 0,6 * 2 = 1.2 )

0,2 ... får vi en periodisk brøk
Vi samler, vi får 0,0100110011001... = 0,0(1001)

0,64510 → X5 0,645 * 5 = 3,225 (3) 0,255 * 5 = 1,275 (1) 0,275 * 5 = 1,375 (1) 0,375 * 5 = 1,875 (1) 0,875 (1) 0,875 * 0,875 * 0,875 * 5 = 4 = 35 * 5. 75 (1) ...

0.3111414… = 0.311(14)

Konvertering af brøkdelen til decimalsystemet

Det udføres på samme måde som oversættelsen af ​​en heltalsdel ved at multiplicere cifferets ciffer med basen til en grad svarende til cifferets position i tallet.

0,101 2 → X 10

1∙2 -1 + 0∙2 -2 + 1∙2 -3 = 0.5 + 0.125 = 0.625

0,134 5 → X 10

1∙5 -1 + 3∙5 -2 +4∙5 -3 = 0.2 + 3∙0.04 + 4∙0.008 = 0.2 + 0.12 + 0.032 = 0.352

Overførsel fra et vilkårligt talsystem til et vilkårligt

Konvertering fra et vilkårligt talsystem til et vilkårligt talsystem. Med. udføres med decimaler. Med.

X N → X M ≡ X N → X 10 → X M

For eksempel

1221201 3 → X 7

1221201 3 = 1∙3 6 + 2∙3 5 + 2∙3 4 + 1∙3 3 + 2∙3 2 + 1 = 729 + 2∙243 + 2∙81 + 27 + 9 + 1 = 1414 10

1414/7 = 202 (0) 202/7 = 28 (6) 28/7 = 4 (0) 4/7 = 0 (4)

1221201 3 → 4060 7

Relaterede nummersystemer

Talsystemer kaldes relaterede, når deres baser er potenser af samme tal. For eksempel 2, 4, 8, 16. Oversættelse mellem relaterede talsystemer kan udføres ved hjælp af tabellen

Tabel for konvertering mellem relaterede talsystemer med base 2
10 2 4 8 16
0 0000 000 00 0
1 0001 001 01 1
2 0010 002 02 2
3 0011 003 03 3
4 0100 010 04 4
5 0101 011 05 5
6 0110 012 06 6
7 0111 013 07 7
8 1000 020 10 8
9 1001 021 11 9
10 1010 022 12 EN
11 1011 023 13 B
12 1100 030 14 C
13 1101 031 15 D
14 1110 032 16 E
15 1111 033 17 F

For at konvertere fra et relateret talsystem til et andet, skal du først konvertere tallet til det binære system. For at konvertere til det binære talsystem erstattes hvert ciffer i et tal med de tilsvarende to (for kvartær), tre (for oktal) eller fire (for hexadecimal).

For 123 4 erstattes en med 01, to af 10, tre af 11, vi får 11011 2

For 5721 8 henholdsvis 101, 111, 010, 001, i alt 101111010001 2

For E12 16 får vi 111000010010 2

For at konvertere fra det binære system skal du opdele tallet i toere (4.), tripler (8.) eller firere af tal (16.), og derefter erstatte dem med de tilsvarende værdier.

Konvertering af tal fra et talsystem til et andet er en vigtig del af maskinaritmetik. Lad os overveje de grundlæggende regler for oversættelse.

1. For at konvertere et binært tal til et decimaltal, er det nødvendigt at skrive det i form af et polynomium, der består af produkterne af cifrene i tallet og den tilsvarende potens af 2, og beregne det efter reglerne for decimalregning:

Når du oversætter, er det praktisk at bruge tabellen over magter for to:

Tabel 4. Potenser af nummer 2

n (grad)

2. For at konvertere et oktalt tal til et decimaltal er det nødvendigt at skrive det ned som et polynomium, der består af produkterne af cifrene i tallet og den tilsvarende potens af tallet 8, og beregne det efter decimalreglerne aritmetik:

Når du oversætter, er det praktisk at bruge tabellen over potenser af otte:

Tabel 5. Potenser af tallet 8

n (grad)

Eksempel. Konverter tallet til decimaltalsystemet.

3. For at konvertere et hexadecimalt tal til et decimaltal er det nødvendigt at skrive det i form af et polynomium, der består af produkterne af cifrene i tallet og den tilsvarende potens af tallet 16, og beregne det iht. regler for decimalregning:

Når du oversætter, er det praktisk at bruge magttabellen for tallet 16:

Tabel 6. Potenser af tallet 16

n (grad)

Eksempel. Konverter tallet til decimaltalsystemet.

4. For at konvertere et decimaltal til det binære system skal det sekventielt divideres med 2, indtil der forbliver en rest mindre end eller lig med 1. Et tal i det binære system skrives som en sekvens af det sidste divisionsresultat og resten fra opdelingen i omvendt rækkefølge.

Eksempel. Konverter tallet til det binære talsystem.

5. At konvertere et decimaltal til oktal system det skal successivt divideres med 8, indtil der forbliver en rest mindre end eller lig med 7. Et tal i det oktale system skrives som en sekvens af cifre af det sidste divisionsresultat og resten af ​​divisionen i omvendt rækkefølge.

6. For at konvertere et decimaltal til det hexadecimale system skal det successivt divideres med 16, indtil der er en rest mindre end eller lig med 15. Tallet i hexadecimalt system skrives som en sekvens af cifre af det sidste divisionsresultat og resten af ​​divisionen i omvendt rækkefølge.


Eksempel. Konverter tallet til et hexadecimalt talsystem.

7. For at konvertere et tal fra det binære system til oktalt, skal det opdeles i treklanger (tripler af cifre), begyndende med det mindst signifikante ciffer, hvis nødvendigt, tilføje nuller til den førende treklang, og hver treklang skal erstattes med tilsvarende oktal ciffer (tabel 3).

Eksempel. Konverter tallet til det oktale talsystem.

8. For at konvertere et tal fra det binære system til hexadecimalt, skal det opdeles i tetrader (fire cifre), begyndende med det mindst betydende ciffer, om nødvendigt, tilføje nuller til den mest betydende tetrad, og erstatte hver tetrad med den tilsvarende oktale ciffer (tabel 3).

Når du opsætter netværk forskellige skalaer og hver dag støder du på beregninger - det er ikke nødvendigt at oprette denne slags snydeark, alt er allerede gjort på en ubetinget refleks. Men når du meget sjældent søger rundt i netværk, husker du ikke altid, hvad masken er i decimalform for præfikset 21, eller hvad netværksadressen er for det samme præfiks. I denne forbindelse besluttede jeg at skrive flere små artikler-cheat sheets om at konvertere tal til forskellige systemer beregninger, netværksadresser, masker osv. Dette er delen vi taler om at konvertere tal til forskellige talsystemer.

1. Talsystemer

Når du laver noget relateret til computernetværk og IT, vil du alligevel støde på dette koncept. Og som en smart it-fyr skal du i det mindste forstå dette lidt, selvom du i praksis vil bruge det meget sjældent.
Lad os se på oversættelsen af ​​hvert ciffer fra en IP-adresse 98.251.16.138 i følgende talsystemer:

  • Binær
  • Oktal
  • Decimal
  • Hexadecimal

1,1 decimal

Da tallene er skrevet med decimal, springer vi konverteringen over fra decimal til decimal :)

1.1.1 Decimal → Binær

Som vi ved, bruges det binære talsystem i næsten alle moderne computere og mange andre computerenheder. Systemet er meget enkelt - vi har kun 0 og 1.
For at konvertere et tal med en tiende til binær form, skal du bruge division modulo 2 (dvs. heltalsdivision med 2), hvilket resulterer i, at vi altid vil have en rest på enten 1 eller 0. I dette tilfælde er resultatet skrevet fra højre mod venstre. Et eksempel vil sætte alt på sin plads:


Figur 1.1 – Konvertering af tal fra decimal til binært system


Figur 1.2 – Konvertering af tal fra decimal til binært system

Jeg vil beskrive divisionen af ​​tallet 98. Vi dividerer 98 med 2, som et resultat har vi 49 og resten er 0. Dernæst fortsætter vi division og dividerer 49 med 2, som et resultat har vi 24 med en rest på 1. Og på samme måde kommer vi til 1 eller 0 i delelig. Så skriver vi resultatet fra højre mod venstre.

1.1.2 Decimal → Oktal

Det oktale system er et heltalssystem med grundtal 8. Dvs. alle tal i den er repræsenteret i området 0 – 7, og for at konvertere fra decimalsystemet skal du bruge division modulo 8.


Figur 1.3 – Konvertering af tal fra decimal til oktal system

Inddelingen ligner 2-punktssystemet.

1.1.3 Decimal → Hexadecimal

Det hexadecimale system har næsten fuldstændig erstattet det oktale system. Det er basis 16, men bruger decimaltal fra 0 til 9 + bogstaver fra A(nummer 10) til F(nummer 15). Du støder på det, hver gang du tjekker dine indstillinger. Netværksadapter- dette er MAC-adressen. Samme når IPv6 bruges.


Figur 1.4 – Konvertering af tal fra decimal til hexadecimal

1.2 Binær

I det foregående eksempel oversatte vi alt decimaltal ind i andre talsystemer, hvoraf et er binært. Lad os nu konvertere hvert tal fra binær form.

1.2.1 Binær → Decimal

For at konvertere tal fra binære til decimaler skal du kende to nuancer. Den første er, at hver nul og én har en multiplikator på 2 tommer n. grad, hvor n øges fra højre til venstre med præcis én. Den anden er, at efter multiplikation skal alle tallene lægges sammen, og vi får tallet i decimalform. Som et resultat vil vi have en formel som denne:

D = (a n × p n-1) + (a n-1 × p n-2) + (a n-2 × p n-3) +…, (1.2.1)

Hvor,
D er det decimaltal, vi leder efter;
n– antallet af tegn i et binært tal;
et – tal ind binær formn. position(dvs. første tegn, andet, osv.);
p – koefficient lig med 2,8 eller 16 til effekten n(afhængigt af nummersystemet)

Lad os for eksempel tage tallet 110102. Vi ser på formlen og skriver:

  • Nummeret består af 5 tegn ( n=5)
  • a 5 = 1, a 4 = 1, a 3 = 0, a 2 = 1, a 1 = 0

  • p = 2 (da vi konverterer fra binær til decimal)

Som et resultat har vi:

D = (1 × 2 5-1) + (1 × 2 5-2) + (0 × 2 5-3) + (1 × 2 5-4) + (0 × 2 5-5) = 16 + 8 + 0 + 2 + 0 = 26 10

For dem, der er vant til at skrive fra højre mod venstre, vil formularen se sådan ud:

D = (0 × 2 5-5) + (1 × 2 5-4) + (0 × 2 5-3) + (1 × 2 5-2) + (1 × 2 5-1) = 0 + 2 + 0 + 8 + 16 = 26 10

Men, som vi ved, ændrer en omarrangering af vilkårene ikke summen. Lad os nu konvertere vores tal til decimalform.


Figur 1.5 – Konvertering af tal fra binært til decimalsystem

1.2.2 Binær → Oktal

Når vi oversætter, har vi brug for binært tal opdele i grupper af tre symboler fra højre mod venstre. Hvis sidste gruppe ikke består af tre tegn, så erstatter vi blot de manglende bits med nuller. F.eks:

10101001 = 0 10 101 001

1011100 = 00 1 011 100

Hver gruppe af bits er en af oktale tal. For at finde ud af hvilken, skal du bruge formlen 1.2.1 skrevet ovenfor for hver gruppe af bits. Som et resultat får vi.


Figur 1.6 – Konvertering af tal fra binært til oktalt system

1.2.3 Binær → Hexadecimal

Her skal vi opdele det binære tal i grupper på fire tegn fra højre mod venstre, efterfulgt af at tilføje nuller til de manglende bits i gruppen, som beskrevet ovenfor. Hvis den sidste gruppe består af nuller, skal de ignoreres.

110101011 = 000 1 1010 1011

1011100 = 0 101 1100

001010000 = 00 0101 0000 = 0101 0000

Hver gruppe af bits er en af hexadecimale tal. Vi bruger formel 1.2.1 for hver gruppe af bits.


Figur 1.7 – Konvertering af tal fra binære til hexadecimale

1,3 oktal

I dette system kan vi kun have problemer med at konvertere til hexadecimal, da resten af ​​oversættelsen går glat.

1.3.1 Oktal → Binær

Hvert tal i det oktale system er en gruppe på tre bits i det binære system, som beskrevet ovenfor. For at oversætte skal vi bruge et snydeark:


Figur 1.8 – Spur til konvertering af tal fra det oktale system

Ved hjælp af denne tablet konverterer vi vores tal til det binære system.


Figur 1.9 – Konvertering af tal fra oktal til binær

Jeg vil beskrive konklusionen lidt. Vores første tal er 142, hvilket betyder, at der vil være tre grupper med tre bit hver. Vi bruger sporen og ser, at nummer 1 er 001, nummer 4 er 100 og nummer 2 er 010. Som et resultat har vi tallet 001100010.

1.3.2 Oktal → Decimal

Her bruger vi kun formel 1.2.1 med en koefficient på 8 (dvs. p=8). Som et resultat har vi


Figur 1.10 – Konvertering af tal fra oktal til decimalsystem

  • Nummeret består af 3 tegn ( n=3)
  • a 3 = 1, a 2 = 4, a 1 = 2

  • p = 8 (da vi konverterer fra oktal til decimal)

Som et resultat har vi:

D = (1 × 8 3-1) + (4 × 8 3-2) + (2 × 8 3-3) = 64 + 32 + 2 = 98 10

1.3.3 Oktal → Hexadecimal

Som skrevet tidligere, for at oversætte, skal vi først konvertere tallene til det binære system, derefter fra binært til hexadecimalt, opdele dem i grupper på 4 bit. Du kan bruge følgende spore.


Figur 1.11 – Spur til konvertering af tal fra det hexadecimale system

Denne tabel hjælper dig med at konvertere fra binær til hexadecimal. Lad os nu konvertere vores tal.


Figur 1.12 – Konvertering af tal fra oktal til hexadecimal

1.4 Hexadecimal

Dette system har det samme problem ved konvertering til oktal. Men mere om det senere.

1.4.1 Hex → Binær

Hvert tal i hexadecimal er en gruppe på fire bit i binær, som beskrevet ovenfor. For at oversætte kan vi bruge snydearket, der er placeret ovenfor. Som resultat:


Figur 1.13 – Konvertering af tal fra hexadecimal til binær

Lad os tage det første tal - 62. Ved hjælp af tabellen (fig. 1.11) ser vi, at 6 er 0110, 2 er 0010, som følge heraf har vi tallet 01100010.

1.4.2 Hex → Decimal

Her bruger vi kun formel 1.2.1 med en koefficient på 16 (dvs. p=16). Som et resultat har vi


Figur 1.14 – Konvertering af tal fra hexadecimal til decimal

Lad os tage det første nummer. Baseret på formel 1.2.1:

  • Nummeret består af 2 tegn ( n=2)
  • a 2 = 6, a 1 = 2

  • p = 16 (da vi konverterer fra hexadecimal til decimal)

Som et resultat har vi.

D = (6 × 16 2-1) + (2 × 16 2-2) = 96 + 2 = 98 10

1.4.3 Hex → Oktal

For at konvertere til det oktale system skal du først konvertere til binært, derefter opdele det i grupper på 3 bit og bruge tabellen (fig. 1.8). Som resultat:


Figur 1.15 – Konvertering af tal fra hexadecimal til oktal

Vi vil tale om IP-adresser, masker og netværk.