Ohjelmointi 1, syksy 2022, luento 22
- M: 26.6 Liukuluku (floating-point)
- Reaalilukujen esittäminen:
- intel16.txt - reaaliluvut Intelin prosesorissa
- desimaal.c - c-ohjelma, jolla voidaa tulostaa lukujen esitysmuoto
- Tarkkuus.cs - esimerkki miten reaaliluvut eivät ole tarkkoja
- esimerkit itse ajettavana koodina
- int-, long-, float- ja double-lukujen esityskyvyn rajat
- IntDoubleYms.cs
- Luennolle tehdyt koodit versionhallinnassa -
- Luennon koodit versionhallinnassa
- 22. luento videona. Luenon alkuosa: MP4 alkuperäinen (TIMin kehittäminen)
- 22. luento videona. Loput katsotaan vuoden 2019 videolta: MP4 alkuperäinen (likuluvut)
- luentoseinä
Luennon sisältö
- tentistä
- demoista
- TIMin kehittämisestä
- TIMin rakenne: palveludokumentaatio
- kehittäjät
- esimerkki "parannuksista"
- kokeillaan ratkaista pari korttia: TIM-JYU/TIM#3245 ja (jos aikaa jää) TIM-JYU/TIM#3247
- luennon jälkeen tehdyt muutokset
- katsotaan liukulukujen tallenusta vuoden 2019 videoilta
- videon lopussa C-kielestä ja sen käytöstä em. esimerkkien tuottamiseen.
#
Onko05tarkkaluku
#
mantissa
#
Haukkukokoirat
#
kissat
#
paljonko
Ylimääräisten tyhjien poistaminen
#
Plugin1
Esimerkki float-lukujen yhteenlaskusta
#
Plugin2
#
summa2
Vielä pahempi tilanne on, mikäli lähdetään lisäämään pieniä lukuja isoon lukuun. Seuraavassa esimerkissä 10 miljoonaan lisätyt luvut eivät vaikuta mitään.
#
floatvika2
Tämän takia esimerkiksi sarja pitäisi laskea aloittaen summaaminen pienimmästä luvusta.
#
intdouble
Reaalilukujen esitys Intel
#
real
Kokeile kirjoittaa alle 32-bit float kohtaan eri lukuja:
1.000: 00111111 10000000 00000000 00000000
0.100: 00111101 11001100 11001100 11001101
0.000: 00000000 00000000 00000000 00000000
-0.100: 10111101 11001100 11001100 11001101
-1.000: 10111111 10000000 00000000 00000000
Kokonaislukujen tapauksessa kokeile vaihdella eksponentin arvoa miten saat 2, 4 jne.
C-ohjelma joka tulostaa lukujen arvoja binäärisenä
#
siirra
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.