Tietokoneen mysteeri bitit ja data
|
|
- Anita Hiltunen
- 5 vuotta sitten
- Katselukertoja:
Transkriptio
1 Tietokoneen mysteeri bitit ja data Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi helmikuuta
2 Tuhat miljoonaa laskutoimitusta sekunnissa def test(m: Long) = { var i = 1L var s = 0L } while(i <= m) { s = s + i i = i + 1 } s // s = m val NANOS_PER_SEC = 1e9 val test_start_time = System.nanoTime test( l) val test_end_time = System.nanoTime val test_duration = test_end_time - test_start_time println("test took %.2f seconds".format(test_duration/nanos_per_sec))
3 Intel Skylake konekieliesimerkki (***) 1029: c4 e2 7d vbroadcastsd (%rdx),%ymm0 102e: c4 e2 7d 19 0c 0a vbroadcastsd (%rdx,%rcx,1),%ymm1 1034: c4 e2 7d a vbroadcastsd (%rdx,%rcx,2),%ymm2 103a: c2 08 add $0x8,%rdx 103e: c5 fd vmovapd (%rax),%ymm3 1042: c4 e2 fd b8 e3 vfmadd231pd %ymm3,%ymm0,%ymm4 1047: c4 e2 f5 b8 eb vfmadd231pd %ymm3,%ymm1,%ymm5 104c: c4 e2 ed b8 f3 vfmadd231pd %ymm3,%ymm2,%ymm6 1051: c5 fd vmovapd 0x20(%rax),%ymm3 1056: c4 e2 fd b8 fb vfmadd231pd %ymm3,%ymm0,%ymm7 105b: c4 62 f5 b8 c3 vfmadd231pd %ymm3,%ymm1,%ymm8 1060: c4 62 ed b8 cb vfmadd231pd %ymm3,%ymm2,%ymm9 1065: c5 fd vmovapd 0x40(%rax),%ymm3 106a: c4 62 fd b8 d3 vfmadd231pd %ymm3,%ymm0,%ymm10 106f: c4 62 f5 b8 db vfmadd231pd %ymm3,%ymm1,%ymm : c4 62 ed b8 e3 vfmadd231pd %ymm3,%ymm2,%ymm : c5 fd vmovapd 0x60(%rax),%ymm3 107e: c4 62 fd b8 eb vfmadd231pd %ymm3,%ymm0,%ymm : c4 62 f5 b8 f3 vfmadd231pd %ymm3,%ymm1,%ymm : c4 62 ed b8 fb vfmadd231pd %ymm3,%ymm2,%ymm15 108d: c8 add %rcx,%rax 1090: 48 ff cb dec %rbx 1093: jne 1029 Esimerkki: Matriisikertolaskualirutiinin sisin silmukka Intel x86 64 konekielellä käyttäen hyväksi Skylake- mikroarkkitehtuurin tukemia AVX2 & FMA -käskykantalaajennuksia
4 ? 1029: c4 e2 7d vbroadcastsd (%rdx),%ymm0 102e: c4 e2 7d 19 0c 0a vbroadcastsd (%rdx,%rcx,1),%ymm1 1034: c4 e2 7d a vbroadcastsd (%rdx,%rcx,2),%ymm2 103a: c2 08 add $0x8,%rdx 103e: c5 fd vmovapd (%rax),%ymm3 1042: c4 e2 fd b8 e3 vfmadd231pd %ymm3,%ymm0,%ymm4 1047: c4 e2 f5 b8 eb vfmadd231pd %ymm3,%ymm1,%ymm5 104c: c4 e2 ed b8 f3 vfmadd231pd %ymm3,%ymm2,%ymm6 1051: c5 fd vmovapd 0x20(%rax),%ymm3 1056: c4 e2 fd b8 fb vfmadd231pd %ymm3,%ymm0,%ymm7 105b: c4 62 f5 b8 c3 vfmadd231pd %ymm3,%ymm1,%ymm8 1060: c4 62 ed b8 cb vfmadd231pd %ymm3,%ymm2,%ymm9 1065: c5 fd vmovapd 0x40(%rax),%ymm3 106a: c4 62 fd b8 d3 vfmadd231pd %ymm3,%ymm0,%ymm10 106f: c4 62 f5 b8 db vfmadd231pd %ymm3,%ymm1,%ymm : c4 62 ed b8 e3 vfmadd231pd %ymm3,%ymm2,%ymm : c5 fd vmovapd 0x60(%rax),%ymm3 107e: c4 62 fd b8 eb vfmadd231pd %ymm3,%ymm0,%ymm : c4 62 f5 b8 f3 vfmadd231pd %ymm3,%ymm1,%ymm : c4 62 ed b8 fb vfmadd231pd %ymm3,%ymm2,%ymm15 108d: c8 add %rcx,%rax 1090: 48 ff cb dec %rbx 1093: jne 1029 Intel Skylake konekieliesimerkki (***) Esimerkki: Matriisikertolaskualirutiinin sisin silmukka Intel x86 64 konekielellä käyttäen hyväksi Skylake- mikroarkkitehtuurin tukemia AVX2 & FMA -käskykantalaajennuksia
5 NVIDIA Volta konekieliesimerkki (***) LOP3.LUT R8, R6, R8, R19, 0x96,!PT; /* 0x */ /* 0x000fe400078e9613 */ LOP3.LUT R64, R11, R64, RZ, 0x3c,!PT; /* 0x b */ /* 0x000fc400078e3cff */ LOP3.LUT R62, R62, R5, R4.reuse, 0x96,!PT; /* 0x e3e7212 */ /* 0x100fe400078e9604 */ LOP3.LUT R17, R17, R15.reuse, R7.reuse, 0x78,!PT; /* 0x f */ /* 0x180fe400078e7807 */ LOP3.LUT R8, R8, R15, R7, 0x78,!PT; /* 0x f */ /* 0x000fe400078e7807 */ LOP3.LUT R18, R19.reuse, R18, R4.reuse, 0x96,!PT; /* 0x */ /* 0x140fe400078e9604 */ LOP3.LUT R5, R19, R10, R4, 0x96,!PT; /* 0x a */ /* 0x000fe400078e9604 */ LOP3.LUT R9, R6, R9, R19, 0x96,!PT; /* 0x */ /* 0x000fc400078e9613 */ LOP3.LUT R7, R64, R15, R7, 0x78,!PT; /* 0x f */ /* 0x000fe400078e7807 */ LOP3.LUT R61, R61, R12, R19, 0x96,!PT; /* 0x c3d3d7212 */ /* 0x000fe400078e9613 */ LOP3.LUT R59, R17, R59, RZ, 0x3c,!PT; /* 0x b113b7212 */ /* 0x000fe400078e3cff */ LOP3.LUT R60, R60, R5, R6, 0x96,!PT; /* 0x c3c7212 */ /* 0x000fe400078e9606 */ LOP3.LUT R58, R9, R58, RZ, 0x3c,!PT; /* 0x a093a7212 */ /* 0x000fe400078e3cff */ LOP3.LUT R51, R18, R51, RZ, 0x3c,!PT; /* 0x */ /* 0x000fc400078e3cff */ LOP3.LUT R50, R8, R50, RZ, 0x3c,!PT; /* 0x */ /* 0x000fe400078e3cff */ LOP3.LUT R57, R7, R57, RZ, 0x3c,!PT; /* 0x */ /* 0x000fe200078e3cff BRA 0x8d0; /* 0xfffff */ /* 0x000fee000383ffff */ Esimerkki: Osa bittirinnakkaistetun GF(2 8 )-monimuuttuja- polynomiseulaan liittyvän kierrosfunktion sisimmästä silmukasta NVIDIA GV100 GPU konekielellä (Compute Capability 7.0)
6 NVIDIA Volta konekieliesimerkki?(***) Esimerkki: Osa bittirinnakkaistetun GF(2 8 )-monimuuttuja- polynomiseulaan liittyvän kierrosfunktion sisimmästä silmukasta NVIDIA GV100 GPU konekielellä (Compute Capability 7.0) LOP3.LUT R8, R6, R8, R19, 0x96,!PT; /* 0x */ /* 0x000fe400078e9613 */ LOP3.LUT R64, R11, R64, RZ, 0x3c,!PT; /* 0x b */ /* 0x000fc400078e3cff */ LOP3.LUT R62, R62, R5, R4.reuse, 0x96,!PT; /* 0x e3e7212 */ /* 0x100fe400078e9604 */ LOP3.LUT R17, R17, R15.reuse, R7.reuse, 0x78,!PT; /* 0x f */ /* 0x180fe400078e7807 */ LOP3.LUT R8, R8, R15, R7, 0x78,!PT; /* 0x f */ /* 0x000fe400078e7807 */ LOP3.LUT R18, R19.reuse, R18, R4.reuse, 0x96,!PT; /* 0x */ /* 0x140fe400078e9604 */ LOP3.LUT R5, R19, R10, R4, 0x96,!PT; /* 0x a */ /* 0x000fe400078e9604 */ LOP3.LUT R9, R6, R9, R19, 0x96,!PT; /* 0x */ /* 0x000fc400078e9613 */ LOP3.LUT R7, R64, R15, R7, 0x78,!PT; /* 0x f */ /* 0x000fe400078e7807 */ LOP3.LUT R61, R61, R12, R19, 0x96,!PT; /* 0x c3d3d7212 */ /* 0x000fe400078e9613 */ LOP3.LUT R59, R17, R59, RZ, 0x3c,!PT; /* 0x b113b7212 */ /* 0x000fe400078e3cff */ LOP3.LUT R60, R60, R5, R6, 0x96,!PT; /* 0x c3c7212 */ /* 0x000fe400078e9606 */ LOP3.LUT R58, R9, R58, RZ, 0x3c,!PT; /* 0x a093a7212 */ /* 0x000fe400078e3cff */ LOP3.LUT R51, R18, R51, RZ, 0x3c,!PT; /* 0x */ /* 0x000fc400078e3cff */ LOP3.LUT R50, R8, R50, RZ, 0x3c,!PT; /* 0x */ /* 0x000fe400078e3cff */ LOP3.LUT R57, R7, R57, RZ, 0x3c,!PT; /* 0x */ /* 0x000fe200078e3cff BRA 0x8d0; /* 0xfffff */ /* 0x000fee000383ffff */
7 Tietokoneen mysteeri Millä periaatteilla tietokone toimii? Mitä on laskenta?
8 Miksi ohjelmoijan on tärkeä ymmärtää tietokoneen keskeiset toimintaperiaatteet?
9 Tietokone on kone ymmärrys periaatteista millä kone toimii kuuluu oleellisesti ohjelmoijan ammattitaitoon Taito käyttää konetta sovelluksissa koneen suorituskyvyn äärirajoilla Fyysinen laitteisto ( hardware ) ja ohjelmat ( software ) ovat keskinäisessä vuorovaikutuksessa suunnittelusta suoritukseen Uteliaisuus ja oivaltamisen riemu maailma laskennan silmin
10 dgx01.triton.aalto.fi (***) (NVIDIA DGX-1, 8 x Tesla V100 GPU, suoritusydintä, 3.2 kw)
11 Summit (Oak Ridge) (***) ~4600 laskentasolmua, jokainen solmu varustettu kuudella NVIDIA Tesla V100 -kiihdyttimellä (~4600 x 6 x bittistä suoritusydintä = ~140 miljoonaa suoritusydintä 1312 MHz kellotaajuus, 15 MW)
12 #5 top500.org (***) Each node has an NVIDIA Tesla K20X card ( MHz) (4 nodes) (8 blades) (3 cages) (18,688 GPUs, 50,233,344 cores) [From Tiwari et al., Reliability Lessons Learned From GPU Experience With The Titan Supercomputer at Oak Ridge Leadership Computing Facility, Supercomputing 2015 (Austin TX, Nov , 2015).]
13 Tietokoneiden fysikaalisista rajoista (***) [From Tiwari et al., Reliability Lessons Learned From GPU Experience With The Titan Supercomputer at Oak Ridge Leadership Computing Facility, Supercomputing 2015 (Austin TX, Nov , 2015).]
14 Toimintaperiaatteet a) loogisella tasolla b) fysikaalisella tasolla
15 Tietokoneen mysteeri (4 kierrosta) 2. Bitit ja data binäärilukujärjestelmä, bittien käsittely Scalalla 3. Kombinaatiologiikka 4. Sekventiaalilogiikka 5. Ohjelmoitava kone logiikkaporteista rakennettuja piirejä Scala-simuloituna kello ja takaisinkytkentä Scala-simulaatioon, prosessorin laskentapolku konekieliohjelmoimme 5574-porttista Scalalla rak. & simuloitua armlet -prosessoria
16 Kierros 2: Bitit ja data Data on jono bittejä Suuruusluokista Datalla on formaatti (Scalan tietotyyppien formaatit) Binäärilukujärjestelmä (2-kantainen lukujärjestelmä) Bittien käsittelyä Scalalla Liukuluvut (IEEE ) (*)
17 Bitti 0 1 Engl. bit (lyhennetty binary digit ) Perusyksikkö informaatiota esitettäessä Claude E. Shannon [A mathematical theory of communication. Bell System Tech. J. 27 (1948) , ] mukaan J. W. Tukey otti sanan bit käyttöön tarkoittamaan binäärilukujärjestelmän numeroa 0 tai 1.
18 Bittijono ( data ) Kaikki laskennassa tarkasteltava informaatio esitetään jonona bittejä ( datana ) Datan määrää mitataan bitteinä (= montako bittiä jono sisältää)
19 Suuruusluokista Datan määrää mitataan tyypillisesti bitteinä tai tavuina (engl. byte) [1 tavu = 8 bittiä] Määrän suuruusluokka on tapana ilmaista SI-etuliitteitä (kilo, mega, giga, jne.) käyttäen Suuruusluokat on tapana ilmaista joko tavanomaisesti 10-kantaisina suuruusluokkina tai vaihtoehtoisesti 2-kantaisina suuruusluokkina
20 10-kantaiset suuruusluokat
21 2-kantaiset suuruusluokat (lue: kilobinääri, megabinääri, )
22 Esimerkki: megabitti ja terabitti Oletetaan, että yksi bitti voidaan tallentaa neliömillimetrin pinta-alalle Tällöin yksi megabitti (10 6 bittiä) tallentuu neliömetrille Otaniemi (Google Earth) Yksi terabitti (10 12 bittiä) puolestaan tallentuu neliökilometrille
23 Terabinääritavu suorituskykyesimerkki CPU & main memory Single core All 40 cores Read (consecutive 64-bit words) Read (random 512-bit cache lines) Read (random 64-bit words) 9.6 GiB/s 36.4 GiB/s 1.5 GiB/s 20.1 GiB/s 0.5 GiB/s 5.2 GiB/s 2 x 2.2-GHz Intel Xeon E5-2698v4 (Broadwell, 20 cores, 50 MiB last-level cache) 512 GiB main memory (16 x 32 GiB DDR DIMM) NVIDIA DGX-1 Aalto-yliopisto, triton -laskentaklusteri dgx01.triton.aalto.fi
24 Terabinääritavu suorituskykyesimerkki GPU on-device memory Single device All 8 devices On-device global memory bandwidth Host/device transfer bandwidth 720 GiB/s 12 GiB/s 5760 GiB/s 8 x NVIDIA Tesla V100 SXM2 Accelerator devices (NVIDIA GV MHz, Volta microarchitecture, bit cores, 80 SMs, 64 cores/sm, 16 GiB of on-device 4096-bit HBM2 memory) NVIDIA DGX-1 Aalto-yliopisto, triton -laskentaklusteri dgx01.triton.aalto.fi
25 Petatavu
26 $ / 100 TB
27
28 Mitä data esittää? Jono bittejä on vain tylsä jono nollia ja ykkösiä Jotta bittijonosta tulee mielenkiintoisempi, tarvitaan lisäksi sopimuksia ja käytänteitä siitä mitä bittijonolla esitetään
29 27550 = 145 x 190 bittiä
30 64 bittiä scala.math.pi ( ) IEEE Std
31 256 bittiä !Greetings from the planet Zorp! Unicode (UTF-8)
32 625 bittiä
33 Data ja datan formaatti Varsinaisen datan (=bittijono) lisäksi tarvitaan sopimus siitä mitä data esittää Tällaista sopimusta tai käytännettä siitä mitä data esittää kutsutaan formaatiksi tai vaihtoehtoisesti datan tyypiksi
34 Numeerinen ja tekstuaalinen data Useimmat ohjelmat käsittelevät ainakin toista seuraavista: numeerinen data (= data joka esittää lukuja) tekstuaalinen data (= data joka esittää tekstiä)
35 Numeerinen ja tekstuaalinen data Myös Scala-kielen perustietotyypit (perusdatatyypit) jakautuvat luonnollisesti numeerisiin ja tekstuaalisiin tyyppeihin: numeeriset Byte, Short, Int, Long, Float, Double tekstuaaliset Char, String
36 Sana, sananpituus Tietokone on rakennettu käsittelemään dataa palasissa, joissa on kiinteä määrä bittejä (esimerkiksi 8, 16, 32, 64, tai 128 bittiä) Tällaisia palasia kutsutaan sanoiksi ( word ) Prosessoriarkkitehtuurin sananpituus tai sananleveys ( word length ) on pisin sanan bittimäärä, jota prosessori tukee käskykannassaan Esimerkiksi ilmaisu 64-bittinen prosessori tyypillisesti viittaa siihen, että prosessoriarkkitehtuurin sananleveys on 64 bittiä
37 Scala-perustietotyyppien pituudet biteissä Scala on suunniteltu laitteistoriippumattomaksi (käytettäväksi eri laitteistoalustoilla) Scalan perustietotyypeillä on seuraavat kiinteät mitat biteissä: Byte (8 bittiä) Short (16 bittiä) Int (32 bittiä) Long (64 bittiä) Char (16 bittiä) Jos laitteisto ei tue suoraan jotakin edellisistä, tuki on toteutettu ohjelmallisesti (Scala-)ohjelmoijalle näkymättömällä tavalla
38 Bitit näkyviin Scalalla [ demo ]
39 Kuinka esittää kokonaislukuja? Luku 754 voidaan esittää monella tavalla Roomalaisessa lukujärjestelmässä DCCLIV Desimaalilukujärjestelmässä 754 Binäärilukujärjestelmässä Zorp-planeetalla on päädytty esitykseen [verkkolukemistossa laajemmin, ml. rationaaliluvut ja liukuluvut]
40 Binäärilukujärjestelmä Binäärilukujärjestelmässä (= 2-kantaisessa lukujärjestelmässä) on helppo laskea Vrt. kerro kaksi roomalaista numeroa keskenään, tai opiskele ulkoa 10-järjestelmän yhteen- ja kertolaskutaulut Tietokoneet käyttävät binäärilukujärjestelmää Binääriluvut (ja 16-kantaiset heksadesimaaliluvut) kuuluvat ohjelmoijan yleissivistykseen
41 Heksadesimaaliluvut Yksi heksadesimaalinumero vastaa 4 bitin jonoa: Esimerkki (25257):
42 Binääriluvun bittipaikat eniten merkitsevä numero bittipaikka vähiten merkitsevä numero
43 Desimaalista binääriksi Syöte: 10-kantainen 2 Z 0 Alusta lopputuloksen kaikki bitit pois päältä (arvoon 0) Toista kunnes Vähennä luvusta siten, että = 0 2 j 2 j 0 suurin mahd. Aseta bitti j päälle (arvoon 1) 2 0 = = = = = = = = = = = 1024.
44 Binääristä desimaaliksi Syöte: 2-kantainen 2 Z 0 Alusta lopputulos arvoon 0 Toista jokaiselle bittipaikalle j Jos bitti j on päällä (arvossa 1), lisää lopputulokseen 2 j 2 0 = = = = = = = = = = = 1024.
45 Harjoituksissa Muunnoksia kantalukujen 2 ja 10 välillä Sanan bittien käsittelyä bitin arvo? bitti päälle (arvoon 1, set ) bitti pois (arvoon 0, reset, clear, mask ) bitin kytkeminen (vastakkaiseen arvoon, toggle ) sanan vieritys vasemmalle ( left shift ) sanan vieritys oikealle ( right shift ) sanan aritmeettinen vieritys oikealle ( arithmetic right shift ) Liukulukujen ( floating point number ) alkeet
46 Boolen operaatiot biteille JA TAI POIS- SULKEVA EI TAI (minimi) (maksimi) (summa, (käännä pariteetti) arvo)
47 Arvojen pakottaminen ja kytkeminen
48 Boolen operaatiot sanoille bittioperaatiot monibittisille sanoille toimivat jokaiselle bittipaikalle erikseen
49 Sanan arvojen pakottaminen ja kytkeminen
50 Bittipaikkojen vieritys ( shift )
51 Esimerkki: Heksadesimaalisyöte Scalalla scala> val y = 0x3E7 y: Int = 999
52 Esimerkki: Heksadesimaalituloste Scalalla def tohexstring(v: Int): String = "0x%X".format(v) scala> tohexstring(754) res: String = 0x2F2 scala> tohexstring(999) res: String = 0x3E7 scala> tohexstring(0x3e7) res: String = 0x3E7
53 Esimerkki: bittipaikan arvo scala> val x = 0x3A // in binary x: Int = 58 scala> (x >> 0)&1 // value of bit at position 0 res: Int = 0 scala> (x >> 1)&1 // value of bit at position 1 res: Int = 1 scala> (x >> 2)&1 // value of bit at position 2 res: Int = 0 scala> (x >> 3)&1 //... res: Int = 1 scala> (x >> 4)&1 res: Int = 1 scala> (x >> 5)&1 res: Int = 1 scala> (x >> 6)&1 res: Int = 0
54 Esimerkki: täsmälleen bittipaikka j on arvossa 1 1 << j (32-bittinen sana; Int) 1L << j (64-bittinen sana; Long)
55 Entäpä liukuluvut? scala> res: Double = Miksi tulos ei ole 0.2?
56 Liukulukustandardi IEEE Std Float = IEEE binary32 Double = IEEE binary64
57 IEEE binary64 -liukuluku lähimpänä 0.3 scala> tellaboutdouble(0.3) I am a 64-bit word that Scala views as having format 'Double' my bits are, in binary, ( )_2... or equivalently, in hexadecimal, 0x3FD Scala prints me out as indeed, my bits acquire meaning as specified in the binary interchange format 'binary64' in the IEEE Std IEEE Standard for Floating-Point Arithmetic this format is a bit-packed format with three components: ( )_2 a) the sign (bit 63): 0 b) the biased exponent (bits 62 to 52): c) the trailing significand (bits 51 to 0): my biased exponent 1021 indicates that I am a _normalized_ number with a leading 1-digit in my significand and an unbiased exponent -2 = that is, in _binary radix point notation_, I am exactly ( )_2 * 2^{-2}... or what is the same in _decimal radix point notation_, I am exactly radiksipisteen jälkeistä bittiä tarkkuutta
58 IEEE binary64 -liukuluku lähimpänä 0.1 scala> tellaboutdouble(0.1) I am a 64-bit word that Scala views as having format 'Double' my bits are, in binary, ( )_2... or equivalently, in hexadecimal, 0x3FB A... Scala prints me out as indeed, my bits acquire meaning as specified in the binary interchange format 'binary64' in the IEEE Std IEEE Standard for Floating-Point Arithmetic this format is a bit-packed format with three components: ( )_2 a) the sign (bit 63): 0 b) the biased exponent (bits 62 to 52): c) the trailing significand (bits 51 to 0): my biased exponent 1019 indicates that I am a _normalized_ number with a leading 1-digit in my significand and an unbiased exponent -4 = that is, in _binary radix point notation_, I am exactly ( )_2 * 2^{-4}... or what is the same in _decimal radix point notation_, I am exactly
59 suoritettuna binary64 -liukuluvuilla
60 Tulosta lähin binary64 -liukuluku scala> tellaboutdouble( ) I am a 64-bit word that Scala views as having format 'Double' my bits are, in binary, ( )_2... or equivalently, in hexadecimal, 0x3FC Scala prints me out as indeed, my bits acquire meaning as specified in the binary interchange format 'binary64' in the IEEE Std IEEE Standard for Floating-Point Arithmetic this format is a bit-packed format with three components: ( )_2 a) the sign (bit 63): 0 b) the biased exponent (bits 62 to 52): c) the trailing significand (bits 51 to 0): my biased exponent 1020 indicates that I am a _normalized_ number with a leading 1-digit in my significand and an unbiased exponent -3 = that is, in _binary radix point notation_, I am exactly ( )_2 * 2^{-3}... or what is the same in _decimal radix point notation_, I am exactly
61 Liukuluvut IEEE Std Float = IEEE binary32 Double = IEEE binary64 Liukuluvut ovat rationaalilukuja, joilla on merkitseviltä numeroiltaan ja eksponentiltaan kiinteään määrään bittejä katkaistu normalisoitu kantaluvun 2 radiksipiste-esitys [lisää lukemistossa] Liukuluvuilla ammattimaisesti laskettaessa on hyvä olla tietoinen liukulukujen ominaisuuksista tutustu standardiin ja muista, että lasket kiinteästi valituilla 2 32 (2 64 ) rationaaliluvulla, jotka ovat sitä harvemmassa mitä isommaksi luvut itseisarvoltaan tulevat
62 Tehtävät bitsquiz muunnamme 2-kannan ja 10-kannan välillä wordops bittioperaatioita sanoille (montako 1-bittiä sanassa jne.) parity pariteettibitin laskeminen ja tarkistaminen float liukulukuihin tutustumista ja sudenkuoppia base64 64-kantainen koodaus binääristä tekstiksi errorcorrect (haastetehtävä) yhden bitin virheenkorjaus, esimerkiksi Hamming-koodilla rationaldecompose (haastetehtävä) rationaaliluvun jaksollinen radiksipistehajotelma
Tietokoneen mysteeri bitit ja data
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri bitit ja data Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi 2
LisätiedotTietokoneen mysteeri bitit ja data
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri bitit ja data Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi 2 22.
LisätiedotCS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2018)
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 CS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2018) Petteri Kaski Tietotekniikan laitos Aalto-yliopisto 19. helmikuuta
LisätiedotICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2016)
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2016) Petteri Kaski Tietotekniikan laitos Aalto-yliopisto 22. helmikuuta
LisätiedotTietokoneen mysteeri ohjelmoitava kone
Tämä luento poikkeuksellisesti salissa TU2, TUAS-talo, Maarintie 7 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri ohjelmoitava kone Petteri
LisätiedotTietokoneen mysteeri ohjelmoitava kone
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri ohjelmoitava kone Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi
LisätiedotANSI/IEEE Std
Digitaalitekniikan matematiikka Luku 9 Sivu 1 (26) Lukujärjestelmät ja lukujen esittäminen ANSI/IEEE Std 754-2008 0 1 0 1 1 0 0 0 B = Σ B i 2 i Digitaalitekniikan matematiikka Luku 9 Sivu 2 (26) Johdanto
LisätiedotTiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto
Luento 6 (verkkoluento 6) Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Ohjelman esitysmuoto Rakenteellinen tieto 1 Tiedon tyypit Kommunikointi
LisätiedotLukujärjestelmät. Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen Fe
Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen.9.2 Fe Lukujärjestelmät Kymmen- eli desimaalijärjestelmä: kantaluku perinteisesti käytetty ja tuttu numerot,,
LisätiedotICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2015)
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2015) Tommi Junttila & Petteri Kaski Tietotekniikan laitos Aalto-yliopisto!
LisätiedotPaavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut. www.ohjelmoimaan.net
Paavo Räisänen Ohjelmoijan binaarialgebra ja heksaluvut www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta
LisätiedotOhjelmoijan binaarialgebra ja heksaluvut
Paavo Räisänen Ohjelmoijan binaarialgebra ja heksaluvut www.ohjelmoinaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta
LisätiedotOHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012
OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 6: Tiedon esittäminen tietokoneessa, osa 1 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. Luennon
LisätiedotTietokoneen mysteeri sekventiaalilogiikka
111111111 111111111 1111111 11111111 111111 1111111 Tietokoneen mysteeri sekventiaalilogiikka Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A112 Ohjelmointi 2 1. maaliskuuta 217 111111111 11111111
LisätiedotLiukulukulaskenta. Pekka Hotokka
Liukulukulaskenta Pekka Hotokka pejuhoto@cc.jyu.fi 10.11.2004 Tiivistelmä Liukulukuja tarvitaan, kun joudutaan esittämään reaalilukuja tietokoneella. Niiden esittämistavasta johtuen syntyy laskennassa
LisätiedotAbstraktiot ja analyysi algoritmit ja informaation esitykset
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Abstraktiot ja analyysi algoritmit ja informaation esitykset Petteri Kaski Tietotekniikan laitos Aalto-yliopisto
LisätiedotTietokonearitmetiikka
Tietokoneen rakenne Luento 6 Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen Yksikkö ALU = Aritmetic
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut
LisätiedotTiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto
Luento 6 (verkkoluento 6) Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Monitavuinen tieto Ohjelman esitysmuoto Rakenteellinen tieto 1 Tiedon
LisätiedotLuento 6 Tiedon esitysmuodot
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 1 Tiedon tyypit (3) Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotLuento 6 Tiedon esitysmuodot
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Tiedon esitys laitteistossa (2) Tietoa siirretään muistiväylää pitkin sanoina
LisätiedotTietokonearitmetiikka
Luento 6 ALU: Aritmeettis-Looginen Yksikkö Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU = Aritmetic Logic Unit
LisätiedotLuento 6 Tiedon esitysmuodot
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 1 Tiedon tyypit (3) Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotLuento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3)
Tietokoneen toiminta 3.4.24 Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Tiedon tyypit (3) Kommunikointi ihmisen kanssa
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin
LisätiedotLuento 6 Tiedon esitysmuodot. Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?)
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 1 Tiedon tyypit (3) Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotLuento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3)
Tietokoneen toiminta, Kesä 22 4.8.22 Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Tiedon tyypit (3) Kommunikointi ihmisen
LisätiedotModuli 4: Moniulotteiset taulukot & Bittioperaatiot
C! : Moniulotteiset taulukot & Bittioperaatiot 15.3.2016 Agenda Pieni kertausharjoitus Moniulotteiset taulukot Esimerkki taulukoista Tauko (bittitehtävä) Binäärioperaatioista Esimerkki (vilkaistaan IP
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
LisätiedotKappale 20: Kantaluvut
Kappale 20: Kantaluvut 20 Johdanto: Kantaluvut... 328 Kantalukujen syöttäminen ja muuntaminen... 329 Matemaattiset toiminnot Hex- ja Bin-luvuilla... 330 Bittien vertaileminen ja manipulointi... 331 Huom!
LisätiedotTietokonearitmetiikka
Tietokoneen rakenne Luento 6 Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen
LisätiedotOhjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
LisätiedotNumeeriset menetelmät
Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot
LisätiedotLuento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (4) Tiedon esitys (7) Suorittimen ymmärtämä tieto (9) Tietokoneen toiminta, K
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Luvut, merkit, merkkijonot, totuusarvot, oliot Kuvat, äänet, hajut(?) Ohjelmat 1 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotLuento 6 Tiedon esitysmuodot
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Luvut, merkit, merkkijonot, totuusarvot, oliot Kuvat, äänet, hajut(?) Ohjelmat 1 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotTietokonearitmetiikka
Luento 6 ALU: Aritmeettis-Looginen Yksikkö Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU =
LisätiedotTietokoneen mysteeri kombinaatiologiikka
Tietokoneen mysteeri kombinaatiologiikka Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A2 Ohjelmointi 2 29. helmikuuta 26 Tietokoneen mysteeri (4 kierrosta) 2. Bitit ja data binäärilukujärjestelmä,
LisätiedotTietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
LisätiedotPOWER analytiikka-alustana
POWER analytiikka-alustana Teppo Seesto Solution Architect Infrastructure matters SAPS/core 5000 4000 SAP 2-tier SD-benchmark SAP ERP 6.0 3765 3000 2000 2204 70% nopeampi 1000 Intel IvyBridge E7-4890v2
LisätiedotLuento 6 Tiedon esitysmuodot
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 1 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotTiedon tyypit Kommunikointi ihmisen kanssa. Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (4) Suorittimen ymmärtämä tieto (9)
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotJakso 6 Tiedon esitysmuodot
Jakso 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Ohjelman esitysmuoto 1 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni,
LisätiedotOngelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?
LisätiedotVIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto
Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,
LisätiedotModerneissa grafiikkakorteissa hyödynnetään myös samanlaista toimintamallia
1 Datan rinnakkaistamisessa siis eri prosessointiyksiköt suorittavat saman operaation annetulle datalle, joka pilkotaan prosessointiyksikköjen kesken. Pointti on siis se, että kyseessä ei ole tehtävien
LisätiedotTIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos
TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 4 Tietokoneen sisäinen toiminta Edellisisää osioiss aon tarkasteltu tietokoneen kehittymistä ja sen
LisätiedotAjattelemme tietokonetta yleensä läppärinä tai pöytäkoneena
Mikrotietokone Moderni tietokone Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena Sen käyttötarkoitus on yleensä työnteko, kissavideoiden katselu internetistä tai pelien pelaaminen. Tietokoneen
LisätiedotTyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotBL40A1711 Johdanto digitaalielektroniikkaan: Johdanto ja lukujärjestelmät
BL40A1711 Johdanto digitaalielektroniikkaan: Johdanto ja lukujärjestelmät Laboratory of Control Engineering and Digital Systems Focus of research and education Energy efficient systems Renewable energy
LisätiedotSISÄLLYS - DIGITAALITEKNIIKKA
SISÄLLYS - DIGITAALITEKNIIKKA Digitaalitekniikan perusteita...2 Bitti (bit)...2 Tavu (bytes)...2 Sana (word)...2 Yksiköt...2 Binääri järjestelmän laskutapa...2 Esimerkki: Digikuvan siirron kestoaika...2
LisätiedotELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle
ELEC-A4010 Sähköpaja Arduinon ohjelmointi Jukka Helle Arduino UNO R3 6-20VDC 5VDC muunnin 16 MHz kideoskillaattori USB-sarjamuunnin (ATmega16U2) ATmega328 -mikro-ohjain 14 digitaalista I/O väylää 6 kpl
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotC = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out
Digitaalitekniikan matematiikka Luku ivu (2).9.2 Fe C = Aseta Aseta i i = n i > i i i Ei i < i i i Ei i i = Ei i i = i i -- On On On C in > < = CI CO C out -- = + (-) (-) = + = C + Digitaalitekniikan matematiikka
LisätiedotCUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen
CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden
LisätiedotSisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva
Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
Lisätiedot6. Muuttujat ja Java 6.1
6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotJavan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi
1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla
LisätiedotJakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000
Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?
LisätiedotTietokoneen toiminta, K Tavoitteet (4)
Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?
LisätiedotOngelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla
Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan
LisätiedotTiedon esitysmuodot Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti
Luentokerta 4 Tiedon esitysmuodot Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Ohjelman esitysmuoto Rakenteellinen tieto
LisätiedotUuden äärellä ohjelmoitava vai oppiva kone?
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Uuden äärellä ohjelmoitava vai oppiva kone? Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi
Lisätiedot5. Laskutoimitukset eri lukujärjestelmissä
5. Laskutoimitukset eri lukujärjestelmissä Lukujen esitykset eri lukujärjestelmissä Muunnokset lukujärjestelmien välillä Laskutoimitukset eri lukujärjestelmissä. 5.1. Muunnokset lukujärjestelmien välillä
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2015 Työkaluista Perinteinen: komentorivi + tekstieditori Editori: esimerkiksi Kate, Notepad++, Aquamacs (Emacs) Ohjelman kääntäminen ja suorittaminen komentoriviterminaalissa TMC - komentorivityökalu
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
Lisätiedot7. Laskutoimitukset eri lukujärjestelmissä 1 / 31
7. Laskutoimitukset eri lukujärjestelmissä 1 / 31 Johdanto Lukujen esitykset eri lukujärjestelmissä Muunnokset lukujärjestelmien välillä Laskutoimitukset eri lukujärjestelmissä. 2 / 31 7.1. Muunnokset
LisätiedotLuento 2: Tiedostot ja tiedon varastointi
HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...
LisätiedotOhjelmointi 1 C#, kevät 2013,
Ohjelmointi 1 C#, kevät 2013, 19.4.2013 (English versions of the questions can be requested from the supervisor. Englanninkieliset kysymykset saa pyytämällä tentin valvojalta.) Tentti (yliopisto opiskelijat)
Lisätiedot2 j =
1. Modulaariaritmetiikkaa Yksinkertaisissa salausjärjestelmissä käytettävä matematiikka on paljolti lukuteoriaan pohjautuvaa suurten lukujen modulaariaritmetiikkaa (lasketaan kokonaisluvuilla modulo n).
Lisätiedot2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
LisätiedotDigitaalitekniikan matematiikka Luku 10 Sivu 1 (14) Lukujärjestelmämuunnokset. 2 s s
Digitaalitekniikan matematiikka Luku 10 Sivu 1 (14) k 10 2 10 2 s 10 10 8 10 16 10 2 10 2 s 2 8 8 2 2 16 16 2 Digitaalitekniikan matematiikka Luku 10 Sivu 2 (14) Johdanto Tässä luvussa perustellaan, miksi
LisätiedotOhjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
Lisätiedot6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva
6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva Experience is what causes people to make new mistakes instead of old ones... - Unknown Sisältö Yleistä EEPROM-rekisterit Protoilu-ohje EEPROMmista ja Fuse-biteistä
LisätiedotBinäärioperaatiot Tiedostot ja I/O
C! Binäärioperaatiot Tiedostot ja I/O 8.3.2018 Tiedotteita Viimeinen luento to 29.3. Ohjelmointitehtävä, ohjelmointikoe ja niiden järjestelyt Ohjelmointikokeeseen ilmoittautuminen auki 2 .c tiedostot ja.h
LisätiedotC++11 seminaari, kevät Johannes Koskinen
C++11 seminaari, kevät 2012 Johannes Koskinen Sisältö Mikä onkaan ongelma? Standardidraftin luku 29: Atomiset tyypit Muistimalli Rinnakkaisuus On multicore systems, when a thread writes a value to memory,
LisätiedotBinäärioperaatiot Tiedostot ja I/O
C! Binäärioperaatiot Tiedostot ja I/O 16.3.2017 Tiedotteita Määräaikoja pidennetty Myös 7. kierros uudestaan auki perjantaihin asti Seuraava ja viimeinen luento 30.3. Makrot, funktio-osoittimet Kokeen
LisätiedotSisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit:
Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotTIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos
TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 1 Tietokone abstraktina yksikkönä Tietokoneen asbtratiotasoa sen muotoisena kuin me sen tällä hetkellä
Lisätiedot1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.
EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen
Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka
LisätiedotLaitteistonläheinen ohjelmointi
Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Luennot: Perjantai 12-14 TB104 Esitiedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali:
LisätiedotKertausluento luennoista 1-3 1
Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotDigitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus
Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Digitaalitekniikan matematiikka Luku 13 Sivu 2 (10) Johdanto Tässä luvussa esitetään virheen havaitsevien ja korjaavien koodaustapojen perusteet ja käyttösovelluksia
Lisätiedot24.9.2015. Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen
Työasema- ja palvelinarkkitehtuurit (IC130301) 5 opintopistettä Petri Nuutinen 5 opintopistettä Petri Nuutinen Apumuistit Tarvitaan ohjelmien ja dokumenttien tallentamiseen, kiintolevyjen varmuuskopiointiin,
LisätiedotOhjelmointi 1 Taulukot ja merkkijonot
Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko
Lisätiedot// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.
Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
Lisätiedot7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
LisätiedotPalautteita. Tutoriaalit olivat vaikeat! Totta, tentti on onneksi helpompi
Palautteita Tutoriaalit olivat vaikeat! Totta, tentti on onneksi helpompi 504 Mitä range() tekee? range on funktio, joka palauttaa listan esim. a = range(5,10) Palauttaa listan [5,6,7,8,9] Siis nämä kolme
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotLisää perustietotyypeistä
Perustietotyypit ja laskutoimitukset 3 Lisää perustietotyypeistä Tässä luvussa käsittelemme lisää jo edellisessä luvussa käsittelemiämme perustietotyyppejä. Näemme, kuinka eri tyyppiset muuttujat vaikuttavat
LisätiedotLuento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotLuento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
Lisätiedot