Miten pystyn muuttamaan luvut kymmenjärjestelmästä binäärijärjestelmään.
Vaikkapa esimerkkinä mikä luku 24 on binäärilukuna?
Vaikkapa esimerkkinä mikä luku 24 on binäärilukuna?
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 11
Vanhimmat
24 (dec)= 2*10^1 4*10^0 = 1*2^4 1*2^3 0*2^2 0*2^1 0*2^0 = 11000 (bin)
Pistä paperille luvut 2^7,2^6...,2^2,2^1,2^0
tai valmiiksi laskettuna: 128,64,32,16,8,4,2,1
Tuossa on kahdeksanbittinen järjestelmä siis.
Sitten vain katsotaan, mitkä luvut yhteenlaskettuna tuottaa halutun summan ja vain niiden paikalle laitetaan ykkönen.
24 = 16 8
Eli vastaus kahdeksalla bitillä: 00011000
Alkunollat voi jättää poiskin: 11000
Vastaavasti vaikka luku 47
47 = 32 16 1
-> 110001
Vähän aikaa kesti ennen kuin ymmärsin mutta tulihan se sieltä loppujen lopuksi. Kiitoksia.
on hankalia tapoja, jos pitäisi muuttaa esimerkiksi
12345D binäärijärjestelmään.
Järkevä tapa on seuraava:
Jaetaan luku kahdella, pannaan jakojäännös muistiin,
jaetaan kahdella jne. Jakojäännökset jonoon asetettuna
muodostavat binäärivastineen:
Luku jakojäännös
12345
6122 1
3061 0
1505 1
752 1
376 0
188 1
94 0
47 0
23 1
11 1
5 1
2 1
1 0
0 1
Jollen väärin laskenut, niin
12345D = 10 1111 0010 1101B.
>Jollen väärin laskenut, niin
>12345D = 10 1111 0010 1101B
no et sitten viitsinyt tarkistaa ...
12345 = 11 0000 0011 1001
- Helpoin tapa on ottaa näytölle Microsoftin funktiolaskin, kirjoittaa desimaaliluku ja valita radiopainike 'Bin' , jolloin näyttö muuttuu binääriluvuksi. Se on siinä, ei tarvitse tietää taustoista sen kummempaa.
- Käsin laskettaessa voi menetellä seuraavasti. (kuten "minätässä" esitti)
24/2 = 12 jakojäännös 0
12/2 = 6 jakojäännös 0
6/2 = 3 jakojännös 0
3/2 =1 jakojäännös 1
1/2 = 0 jakojäännös 1
Jakojäännöksistä muodostuu binääriluku 24des. => 11000bin.
Tarkistetaan: 1*2^4 1*2^3 0*2^2 0*2^1 0*2^0 = 16 8 0 0 0 = 24
- Kun tehdään tietokoneohjelma ylläolevan mallin mukaan, saadaan tulostus käänteisessä järjestyksessä (kuten edellä). Kirjoittamalla rekursiivinen funktio, homma hoituu hienosti suoraan.
Esimerkki tällaisesta C funktiosta:
void binaari(int luku)
{
if (luku > 0)
{
binaari(luku/2);
cout
Toihan on 16 8 elikkä 11000
Kun muistaa että jokaisella paikalla on painonsa
16 8 4 2 1
1 1 0 0 0 = 24
Otetaan esille Windows-laskin ja valitaan Funktiolaskin. Näppäillään 24 ja valitaan vasemmasta yläkulmasta moodi Bin, sekä havaitaan tulos 11000.
Sitten palautetaan moodi Dec ja näppäillään uusi kymmenluku ja toistetaan edellinen.
Kuten edellä kävi ilmi ,sarjakehitelmällä lopusta alkuun. ykköset,kakkoset neloset kahdeksaiset jne. puuttuvaa numerosaaa merkitään nollalla ja toteutunutta ykkösellä.
Tarkennnetusti. Sarjakehitelmä 1-2-4-8-16 jne.. Nähdään että binäärisarjassa on riittävästi lukuja tuloksen saamiseksi. Käännetään sarja ja aloitetaan lopusta_ 1siä =0, 2sia =0, mutta 8saisia =1kpl ja 16taisia=1klp, eli 8 16. Joka bittikielellä on 1100. Binäärinen bitti on kuin taittettaisiin paperiarkki eli ykkös-osa,aina uudestaan kahtia. Kerran taitetussa on 2paperisiivua päälletysten,kahdesti taitetussa on 4 siivua, kolmasti taitetussa 8 ja neljästi taitetussa on 16 -kerrosta. Mikäli binääristettäisiin esim luku 47, tarvittaisiin sarja: 2,4,8,16,32. 32 , ykkösiä on 1-kpl, kakkosia 1- kpl, nelosia- 1kpl , kahdeksaisia 1-kpl, 16:sta ei tarvita= 0-kpl ja 32hta on 1kpl saadaan= 32 8 4 2 1, joka bittikielellä on 10111 eli nyt kuusinumeroinen luku,kun on viisi taittoa.
Siis vielä edellisiin. huolimattomuuttani jätin kummastakin tuloksesta yhden bitin lopusta eli luku 24 =11000, viisi bittiä ja luku 47=101111 kuusi bittiä! I am so sorry.