Mitä voi tarkoittaa jokin algoritmiharjoitus, jossa pyydetään esittämään viikonpäivät 7 bitin jonoina, Eli siis jatkuu... jokainen pv saa yksikäsitteisen bittijonon. Onko 7 bitin mittaisten jonojen käyttö järkevää (mistä h*****istä minä senKIN tietäisin) Mikä olisi lyhyin bittijono, jolla viikonpäivät voisi esittää.
Siis mitä tämä on suomeksi? Kuka ymmärtää, minä ainakaan en. Jos joku järkijaakko vielä jaksaisi selittää.. Kiitos, trv. masentunut ei ikinä bittinikkariksi kykenevä EiNo (ja vielä naispuolinen)
Siis mitä tämä on suomeksi? Kuka ymmärtää, minä ainakaan en. Jos joku järkijaakko vielä jaksaisi selittää.. Kiitos, trv. masentunut ei ikinä bittinikkariksi kykenevä EiNo (ja vielä naispuolinen)
Vastaukset 9
Vanhimmat
Otetaan yksinkertasesti.
Jos on maanantai, muuttujalle annetaan arvo 1. Tiistai 2. Jne... Viikonpäivän syöttö tulee kai scanf:lla tai jollain? Se tuskin on ongelma
if-lauseella tai switch:lla tarkistetaan mikä päivä on kyseessä. Sitten muutetaan muuttujan (1, 2 tai ...) sisältö heksasta binääriksi:
Ma = 0000001 (eli se 1)
Ti = 0000010 (2)
Ke = 0000011 (3)
... (Nämä saa ulos myös winkkarin scifi-laskimella hex > bin)
Sitten tulostetaan liirumlaarum pihalle, ja opettaja on tyytyväinen.
Jos meni ohi, otetaan uudelleen.
.tunppi
Jos viikonpäivät pitäisi ilmaista seitsemällä bitillä looginen ratkaisu lienee tämmöinen:
0000001=1 -> ma
0000010=2 -> ti
0000100=4 -> ke
0001000=8 -> to
0010000=16 -> pe
0100000=32 -> la
1000000=64 -> su
Kyllähän noilla 7:lla bitillä ihan hyvin voi yksiselitteisesti ilmaista 7 eri päivää.. tosin 7:llä bitillä on 2^7 eri tilaa(=128) joista käyttämättä jää 121.
lyhyin bittijono tämä(ihan tavan binäärilukuja):
001=1 -> ma
010=2 -> ti
011=3 -> ..
100=4
101=5
110=6
111=7
Kyllähän näillä 3 bitilläkin 7 päivää voidaan erotella ihan yksiselitteisesti.. vielä jää käyttämättäkin yksi tila eli 000.
Ensimmäisellä muodolla on se etu että voit merkata viikolle nollasta 7:ään päivää kerralla.
esim kaikki arkipäivät voisi merkitä tyyliin 0011111. Josta esim AND-operaatiolla voidaan tarkistaa onko joku tietty pitti päällä jne.. toivottavasti ei sotkenut ;)
Kannattaa varmaankin tutustua loogisten operaatioiden käyttöön jos eivät ole ennestään tuttuja.
"Kannattaa varmaankin tutustua loogisten operaatioiden käyttöön jos eivät ole ennestään tuttuja."
Tarkoitat varmaankin binäärisiä operaatioita
eipä ollut muuta.
Tunppipa jo jotain selvittikin, mutta vielä vähän lisää.
Bittijono = "merkkijono" joka sisältää vain 0:aa ja 1:stä.
Yksikäsitteinen bittijono = erilainen bittijono esim. 0101 ja 0101 ovat samanlaisia, kun taas 0101 ja 1001 ovat erilaisia, joten 0101 ja 1001 ovat yksikäsitteisiä bittijonoja.
Koska viikonpäiviä on vain 7, lyhin bittijono jolla ne voidaan esittää on tällöin 3-merkkinen esim. 101, 010 tai 111, koska tälläisiä bittijonoja on yksikäsitteisiä (erilaisia) vain 8 kpl.
7-bitin jonojen käyttö viikonpäivien esittämiseen on turhaa, koska 7-bitin jonoja on 2^7=(128) kpl erilaisia jolloin syntyy turhaa informaatiota (lähinnä jonon ensimmäiset 4-bittiä).
Toivottavasti tämä valaisi asiaa edes vähän.
Niin ja vielä tuosta harjoituksesta. Eihän ole pakko käyttää kasvavia bittijonoja 0000001,0000010,0000011 jne. Tehtävänantohan rajoittaa vain bittijonojen keskinäistä yksikäsitteisyyttä eli esim. jonot 0001101,0010101,1011011 jne käyvät myös vastaukseksi.
Kun katsoin, mitä olin opettajalle vastannut, oli siinä jonkinlainen järjen hiven ollut, olin kirjoittanut ma 01 ti 001 ja jotain ihan idioottia silti.
Miten te voitte ymmärtää tällaista.. täytyy olla erikoisfiksu, ei ainaskaan mun kaveritkaan tajunnu. Tai sit me ollaan sitä toista kastii..
Ihanasti kiitos, kertakaikkisesti kaikille teille..
Jokainen täällä vastaavista on lähtenyt samalta viivalta kuin tekin. Toisia bitinnypläys on kiinnostanut sen verran, että he tekevät sitä työkseen, jolloin tuollaisia (yksinkertaisia) ongelmia voi tulla vastaan vaikka joka päivä.
Vähän OT, mutta tuli mieleen vitsi;
"On olemassa 10 laisia ihmisiä; niitä jotka
osaa laskea binaareilla ja niita jotka ei".
Ei-Nolle tsemppia, ei tartte olla erikoisfiksu,
opettemalla ne selviää siinä kun muutkin jutut.
On kolmenlaisia ihmisiä; sellaisia, joka osaavat laskea ja sellaisia, jotka eivät osaa ;)