Kapitel 20:
Talsystem
20
Talsystem ................................................................................................ 328
Skriva in och konvertera talsystem ..................................................... 329
Beräkningar med binära och hexadecimala tal.................................. 330
Jämföra eller manipulera enskilda bitar ............................................. 331
När du skriver in ett heltal på din TI-89 kan du skriva in det i
decimal, binär eller hexadecimal form. Du kan också ange ett läge
för Base för att ange i vilket talsystem resultat ska visas. Bråktal
och decimaltal visas alltid i decimal form.
Obs! Från den nya menyn
MATH/Base kan du välja ett
antal operationer som är
relaterade till olika talsystem.
Binära värden består av 0 och
1 med basen 2:
100
2 0 ù 0 = +0
2 1 ù 0 = +0
2 2 ù 1 = +4
Hexadecimala värden består
av 0 – 9 och A – F med
basen 16:
A8F
16 0 ù F = +15
16 1 ù 8 = +128
16 2 ù A = +2560
Dec
Bas 10
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Bin
Bas 2
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
Hex
Bas 16
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
Du kan använda din TI-89 för att konvertera ett värde från ett
talsystem till ett annat. Till exempel, 100 binärt = 4 decimalt och
A8F hex = 2703 decimalt.
Hexadecimala tal används ofta för att presentera längre binära
värden, som är svåra att komma ihåg, som t ex:
1010 1111 0011 0111
A
F
3
7
Den hexadecimala formen AF37 är lättare
att arbeta med än motsvarande binära
1010111100110111.
Med TI-89 kan du också jämföra eller manipulera binära värden
bit för bit.
Kapitel 20: Talsystem
8920-SWE.DOC TI-89: Chapter 20 (Swedish) Joan Terrell Revised: 11/23/98 11:31 AM Printed: 11/25/98 1:56 PM Page 327 of 6
327
Talsystem
Beräkna 10 binärt (bas 2) + F hexadecimalt (bas 16) + 10 decimalt (bas 10). Använd sedan
operatorn 4 för att konvertera ett heltal från ett talsystem till ett annat. Avsluta med att se
hur förändringar av Base påverkar de visade resultaten.
Steg
Tangenter
1. Öpnna dialogrutan MODE (sidan 2). I
inställningen för Base väljer du DEC
som aktuellt talsystem.
3„
(använd D när du
vill flytta till läget
Base)
B1¸
Heltalsresultat visas i aktuellt läge för Base.
Bråktal och decimaltal visas alltid i decimal
form.
2. Beräkna 0b10+0hF+10.
När du vill skriva in ett binärt eller
hexadecimalt tal måste du alltid ange 0b
eller 0h framför talet (nolla samt bokstaven
B alternativt H). Om du inte gör detta
betraktas talet som ett decimalt tal.
3. Lägg till 1 till resultatet och
konvertera det till ett binärt värde.
2 Ž öppnar konverteringsoperatorn 4.
OjB10«O
2™HF
j«10
¸
«12Ž
2™HEX
j¸
5. Lägg till 1 till resultatet och visa det i
decimal form utan konvertering.
«1¸
6. Ändra inställningen för Base till HEX.
3„
(använd D för att
flytta till Base)
B2¸
7. Beräkna 0b10+0hF+10.
OjB10«O
2™HF
j«10
¸
8. Ändra inställningen för Base till BIN.
3„
(använd D för att
flytta till Base)
B3¸
9. Skriv in 0b10+0hF+10 igen.
¸
328
Viktigt! Prefixen 0b och 0h börjar
med en nolla, inte bokstaven O
och följs sedan av B eller H.
«12Ž
2™BIN
j¸
4. Lägg till 1 till resultatet och konvertera
det till ett hexadecimalt värde.
När Base = HEX eller BIN gäller vissa
begränsningar för storleken på resultatet.
Se mer på sidan 330.
Visa
Resultaten börjar med 0b
eller 0h för att ange
aktuellt talsystem.
Kapitel 20: Talsystem
8920-SWE.DOC TI-89: Chapter 20 (Swedish) Joan Terrell Revised: 11/23/98 11:31 AM Printed: 11/25/98 1:56 PM Page 328 of 6
Skriva in och konvertera talsystem
Oberoende av inställningen för Base måste du alltid ange prefix
när du skriver in tal i binär och hexadecimal form.
Skriva in ett binärt eller
hexadecimalt tal
När du vill skriva in ett binärt tal använder du formen:
0b binärtTal
(till exempel: 0b11100110)
Binärt tal med upp till 32 tecken
Noll, inte bokstaven O följt av bokstaven b
Obs! Du kan skriva in b
alt. h i prefixet, samt
hexadecimala tecknen
A – F, med gemener eller
versaler. Resultatet är
detsamma.
När du vill skriva in ett hexadecimalt tal använder du formen:
0h hexadecimaltTal
(till exempel: 0h89F2C)
Hexadecimalt tal med upp till 8 tecken
Noll, inte bokstaven O följt av bokstaven h
Om du skriver in ett tal utan prefixet 0b eller 0h, som t ex 11, antas
det alltid vara ett decimalt tal. Om du utesluter prefixet 0h men
använder de hexadecimala tecknen A – F hanteras hela talet som ett
variabelnamn.
Konvertera mellan
talsystem
Använd konverteringsoperatorn 4.
heltalsUttryck 4 Bin
heltalsUttryck 4 Dec
heltalsUttryck 4 Hex
Obs! Om talet inte är ett
heltal visas ett
felmeddelande.
När du vill skriva 4, tryck 2 Y.
Du kan också välja konvertering
mellan talsystem via menyn
MATH/Base.
Konvertera 256 från decimalt till
binärt talsystem:
För binära och hexadecimala tal
måste du ange prefixet 0b alt. 0h.
256 4 Bin
Konvertera 101110 från binärt
till hexadecimalt talsystem:
0b101110 4 Hex
Alternativa metoder för
konverteringar
Resultaten börjar med 0b
eller 0h för att ange
aktuellt talsystem.
I stället för att använda 4 kan du:
Om Base = BIN:
1. Använd 3 (sidan 330) för
att ange inställning för Base
till det talsystem du vill
konvertera till.
Om Base = HEX:
2. Skriv in det värde du vill
konvertera (med rätt prefix)
i grundfönstret och tryck
¸.
Kapitel 20: Talsystem
8920-SWE.DOC TI-89: Chapter 20 (Swedish) Joan Terrell Revised: 11/23/98 11:31 AM Printed: 11/25/98 1:56 PM Page 329 of 6
329
Beräkningar med binära och hexadecimala tal
Alla operationer som använder heltal kan även användas med
hexadecimala och binära tal. Resultaten visas med det
talsystem som är inställt i Base. Resultaten är begränsade till
vissa maxvärden då Base = HEX eller BIN.
Ställa in Base för visning
av resultat
1. Tryck 3 „ för att öppna
sidan 2 i fönstret MODE.
2. Bläddra till inställningen för
Base, tryck B, och välj
önskad inställning.
3. Tryck ¸ för att stänga
fönstret MODE.
Obs! Inställningen för Base
påverkar bara visade
resultat. Du måste alltid
ange prefixet 0h alt. 0b när
du skriver in hexadecimala
och binära tal.
Om Base = HEX:
Inställningarna för Base påverkar
bara visningen av heltal.
Bråktal och decimaltal visas
alltid i decimal form.
Resultaten börjar med 0h
för att ange aktuellt.
Division när Base = HEX
alt. BIN
Om du vill försäkra dig om att
resultatet alltid är ett heltal kan
du använda intDiv() i stället
för e.
Begränsningar när
Base = HEX alt. BIN
Om Base = HEX:
Med inställningen Base=HEX
eller BIN visas resultaten av en
division i hexadecimal eller
binär form bara om resultatet
är ett heltal.
Tryck ¥ ¸ om du vill visa
resultatet i formen APPROXIMATE.
När Base=HEX alt. BIN sparas heltal internt som ett 32-bitars binärt
tal vilket kan använda talområdet som visas nedan (visas i
hexadecimal och decimal form):
0hFFFFFFFF
ë1
0h80000000
ë2.147.483.648
0h1
1
0h0
0
0h7FFFFFFF
2.147.483.647
Om ett resultat är för stort för att lagras i 32 bitar används en
symmetrisk modulo-operation för att bringa resultatet inom givna
gränser. Alla tal större än 0h7FFFFFFF påverkas av detta. Till
exempel ändras 0h80000000 till 0hFFFFFFFF till negativa värden.
330
Kapitel 20: Talsystem
8920-SWE.DOC TI-89: Chapter 20 (Swedish) Joan Terrell Revised: 11/23/98 11:31 AM Printed: 11/25/98 1:56 PM Page 330 of 6
Jämföra eller manipulera enskilda bitar
Med följande operatorer och funktioner kan du jämföra och
manipulera enskilda bitar i binära tal. Du kan skriva in heltal i
valfritt talsystem. Talen konverteras automatiskt till binära tal
för operationen och resultaten visas i aktuellt talsystem inställt
i Base.
Booleska operationer
Obs! Du kan välja dessa
operatorer från menyn
MATH/Base. Exempel på
hur du använder respektive
operator finns i Appendix A
längst bak i denna bok.
Operator med syntax
Beskrivning
not heltal
Returnerar förstakomplementet där varje
bit är omvänd.
· heltal
Returnerar andrakomplementet vilket är
samma som förstakomplementet +1.
heltal1 and heltal2
Vid en bitvis jämförelse med and är
resultatet 1 om båda bitarna är 1, annars
är resultatet 0. Det returnerade värdet
motsvarar det resulterande binära värdet.
heltal1 or heltal2
Vid en bitvis jämförelse med or är
resultatet 1 om en av bitarna är 1 och 0
bara om båda bitarna är 0. Det
returnerade värdet motsvarar det
resulterande binära värdet.
heltal1 xor heltal2
Vid en bitvis jämförelse med xor är
resultatet 1 om en av bitarna är 1 (men
inte båda). Resultatet är 0 om båda
bitarna är 0 eller om båda bitarna är 1.
Det returnerade värdet motsvarar det
resulterande binära värdet.
Om Base = HEX:
Anta att du skriver in:
0h7AC36 and 0h3D5F
Internt konverteras de
hexadecimala talen till 32-bitars
binära tal.
Om Base = BIN:
Bitarna i de båda talen jämförs
sedan bit för bit.
Obs! Om ett resultat är för
stort för att lagras i 32 bitar
används en symmetrisk
modulo-operation för att
bringa resultatet inom givna
gränser (se sidan 330).
0h7AC36 = 0b00000000000001111010110000110110
and
0h3D5F
and
= 0b00000000000000000011110101011111
0b00000000000000000010110000010110 = 0h2C16
Inledande nollor visas inte i resultatet.
Resultatet visas i det talsystem som är inställt i Base.
Kapitel 20: Talsystem
8920-SWE.DOC TI-89: Chapter 20 (Swedish) Joan Terrell Revised: 11/23/98 11:31 AM Printed: 11/25/98 1:56 PM Page 331 of 6
331
Rotera och skifta bitar
Funktion med syntax
Beskrivning
rotate(heltal)
Om #antalSteg är:
– eller –
¦
uteslutet — alla bitar roteras ett steg
till höger (förval är ë 1).
¦
negativt — alla bitar roteras angivet
antal steg till höger.
¦
positivt — alla bitar roteras angivet
antal steg till vänster.
rotate(heltal,#antalSteg)
Obs! Du kan välja dessa
operatorer från menyn
MATH/Base. Exempel på
hur du använder respektive
operator finns i Appendix A
längst bak i denna bok.
Vid en rotering till höger roteras biten
längst till höger till den lediga platsen
längst till vänster och tvärt om för en
rotering till vänster.
shift(heltal)
Om #antalSteg är:
– eller –
¦
uteslutet — alla bitar skiftas ett steg
till höger (förval är ë 1).
¦
negativt — alla bitar skiftas angivet
antal steg till höger.
¦
positivt — alla bitar skiftas angivet
antal steg till vänster.
shift(heltal,#antalSteg)
Vid en skiftning till höger försvinner
biten längst till höger och 0 alt 1 sätts in
för att matcha biten längst till vänster.
Vid en skiftning till vänster försvinner
biten längst till vänster och 0 sätts in
längst till höger.
Om Base = HEX:
Anta att du skriver in:
shift(0h7AC36)
Internt konverteras de
hexadecimala talen till 32-bitars
binära tal.
Om Base = BIN:
Bitarna i de båda talen jämförs
sedan bit för bit.
Varje bit skiftas till höger.
Obs! Om ett resultat är för
stort för att lagras i 32 bitar
används en symmetrisk
modulo-operation för att
bringa resultatet inom givna
gränser (se sidan 330).
0h7AC36 = 0b00000000000001111010110000110110
Lägger till 0 om den vänstra biten är 0,
eller 1 om den vänstra biten är 1.
Försvinner
0b00000000000000111101011000011011 = 0h3D61B
Inledande nollor visas inte i resultatet.
Resultatet visas i det talsystem som är inställt i Base.
332
Kapitel 20: Talsystem
8920-SWE.DOC TI-89: Chapter 20 (Swedish) Joan Terrell Revised: 11/23/98 11:31 AM Printed: 11/25/98 1:56 PM Page 332 of 6