| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Keskustelut - PHP - Heksalukujen käpistely [1 / 2]Sivu: 1, 2 seuraava sivu » tino 08:54 7.5.10 Kertokaahan viisaammat miksi saan tällaiset tulokset: PHP Eikö näistä kuitenkin pitäisi tulla sama lopputulos? Vai olenko nyt ymmärtänyt jottain väärin. editoitu: 09:38 7.5.10 Grez 09:37 7.5.10 "0x47" on eri kuin "47" Tai tarkemmin sanoen 0x47=71 ja 47=0x2F tino 11:16 7.5.10 Joo eli ord('G') >> 4 tuottaa oikean tuloksen mutta toisinsanoen tuota ei varsinaisesti saa heksaksi kääntymään? Eli tyyliin funkkari('G') palauttaisi 0x47 sellaisessa muodossa, että sitä voisi heksalukuna käyttää laskuissa suoraan. Helpottaisi elämää justiinsa tässä kohtaa aika radikaalisti. remix 14:12 7.5.10 tino kirjoitti: Joo eli ord('G') >> 4 tuottaa oikean tuloksen mutta toisinsanoen tuota ei varsinaisesti saa heksaksi kääntymään? Eli tyyliin funkkari('G') palauttaisi 0x47 sellaisessa muodossa, että sitä voisi heksalukuna käyttää laskuissa suoraan. Helpottaisi elämää justiinsa tässä kohtaa aika radikaalisti. No eikös tuo ord('G') anna G:n ascii arvon? Ei kai se arvo siitä miksikään muutu esitettiin se sitten hexana, desimaalina, binäärinä tai jonain muuna, jos kerta laskuissa sitä meinaat käyttää. PHP:ssä varmaan on sitten joku funktio, jolla lukujen esityksiä voi muuttaa kannasta toiseen, tai ainakin sprintf. Grez 15:19 7.5.10 Jos sulla on valmiiksi heksamuodossa oleva luku, esim. $a='47', niin voit käyttää sitä laskuissa ihan ('0x'.$a) tino 17:19 7.5.10 remix: Joo, periaatteessa. Mutta tässä kohtaa nyt helpottaisi paljon jos sen voisi pitää heksana koska sille tehdään muutakin kuin lasketaan. Tämä liittyy datapaketin tekoon erästä sarjaporttilaitetta varten, jossa on ties mitä venkulaa ennen kuin paketti on speksien mukainen. Grez: Niin minäkin toivoin/ajattelin mutta: PHP Mutta eipä siinä mittään, onnistuu tuo toki muutenkin mutta vaatii vain enemmän pyörittelyä. Toiveissa oli helpolla pääsy. :) Grez 17:33 7.5.10 No katos pahusta, olinpa näköjään väärässä. Sitten vaan PHP (Tällä kertaa jopa testasin) tino 21:29 7.5.10 Juu, näin se tosiaan pelaa. Tässä vain kokonaisuuden kannalta olisi ollut helpointa saada tuo pysymään heksana alusta loppuun mutta eipä siinä, täytyy nyt vain vähän enemmän pyöritellä lukuja vaan. remix 21:56 7.5.10 En kyllä ymmärrä miksi noita lukumuunnoksia tarvitsisi tehdä, jos arvot pysyvät lukuina koko ajan. Jos lukuja joudutaan välillä käsittelemään merkkijonoina, niin sitten tietysti. Grez 10:41 8.5.10 Tää on taas näitä, kun kysytään jotain pientä yksityiskohtaa (huonosta) toteutuksesta, eikä kerrota mitä oikeastaan ollaan tekemässä, että voitaisiin antaa oikeasti hyviä neuvoja. tino 12:58 8.5.10 ? No mitäs kummaa, älkääs nyt pillastuko. Kunhan nyt vain kysyin josko joku olisi osannut kertoa saako PHP:ssä jotenkin lukua säilytettyä heksana, palautettua lukua heksana funktiosta tms. Vastaus oli, että ei saa - eli esim. bin2hexin palauttamaa lukua ei käsitellä heksana millään muotoa. Se tieto riittää minulle. Turha tässä nyt on lähteä julistamaan, että teen työni huonosti koska en kerro teille asiasta enempää. En kerro koska se ei tähän kysymykseeni liity eikä se vaikuta millään muotoa vastaukseen. Ja tokkiisa myös siksi että en saa siitä kertoa. Vaan vastaukseni sain ja kiitokset siittä Grezille. Kauhia jälkipyykki aina. Tokkiisa saa sitä jälkipyykätä vaikka maailman tappiin mun puolesta mutta silleen semisti höpönassua lähteä asiasta mitään tietämättömänä moittimaan tekemääni jälkeä. Tai jos huonolla toteutuksella viittasit datapaketin spekseihin/muotoon niin voihan se olla - mutta se on sellainen kuin on, mitä sitä nyt miettimään sen enempää. Sillä mennään mitä on, turha venkoilla. Ugh, sanois inkkarismies. editoitu: 13:18 8.5.10 Grez 13:16 8.5.10 Jos kertoisit mitä tarkoittaa "luvun käsitteleminen heksana" ja miksi siitä on hyötyä, niin ehkä ei tarvitsisi jälkipyykätä. Heksadesimaaliesitys on ihan vaan ihmisille tarkoitettu tapa esittää numeroita. Tietokoneella ei ole mitään tarvetta käsitellä lukua heksadesimaaliesityksenä. Ehkä jos paketissa täytyy jostain syystä laittaa data heksaesityksenä, niin se tarvii sitten siihen muuttaa, mutta ei kai sitä tarvitse edes takaisin muutella? Kerran heksasta luvuiksi kun paketti vastaanotetaan ja kerran luvuista heksaksi pakettia lähettäessä. Tai jos kerrot vaikka mistä pakettistandardista on kysymys, niin voidaan itse ihmetellä miksi siinä täytyy käsitellä lukua heksoina. raspi 14:54 8.5.10 PHP tino 16:58 8.5.10 Kyse ei ole standardin mukaisesta paketista. Kaikki hyvin, tilanne ohi, vastaus saatu. Kiitos. Yritän ensi kerralla muistaa olla kysymättä ettei keltään mene yöunet. :) eis 15:08 9.5.10 Noh, ei kai sitä nyt ihan niin tarvi ottaa, toki noita voi kysyä. Itsekin monesti harmitellut kun kysymyksissä ei kerrota laajempaa kontekstia, mut jos sitä ei syystä tai toisesta voi kertoa, niin sit ei voi, ei se tarkoita et kysyminen on väärin. tino 17:28 9.5.10 Niin no en minä mihinkään ole lähdössä enkä kyselyiästäni ulos kasvamassa, kunhan nyt vähän metelöin vastalauseeksi. Vähän vesirajan tuolta puolen nämä jälkipyykit ja huonosta toteutuksesta moittiminen vaikkei tiedä kilin kelloa siitä mitä, miten tai miksi olen tekemässä. No, se siittä. Draamaa @ kuha. Minä lähen nyt ompelemaan pelihousuja takas yheksi kappaleeksi. editoitu: 20:57 9.5.10 Grez 20:55 9.5.10 tino kirjoitti: Kokemuksen avulla on usein mahdollista huomata, että joku tekee todennäköisesti jotain "väärin", vaikka ei tietäisikään kaikkia yksityiskohtia. Vähän vesirajan tuolta puolen nämä jälkipyykit ja huonosta toteutuksesta moittiminen vaikkei tiedä kilin kelloa siitä mitä, miten tai miksi olen tekemässä. Tässä nyt hieman äärimmäisempi esimerkki: http://xkcd.com/463/ editoitu: 10:15 10.5.10 tino 10:03 10.5.10 Olkoon sitten niin kun yli-inhimillinen vainusi näin kerran sanoo. Kuten jo todettu, tilanne ohi. Työ on tehty ja toimivaksi todettu, maailma ei suistunut raiteiltaan, ei syntynyt mustia aukkoja, ei tullut tulvia. Tuhkaa tuli mutta sitä oli jo ennestään, ei johdu koodinpätkästäni. Mutta vaikka nyt useamman vuoden olen täällä ollut ja sen vajaa 3000 viestiä täällä kirjoittanut, en ennen ole nähnyt noin vajain tiedoin tehtyä negatiivista kommenttia henkilön työn laadusta. En, vaikka täällä välillä negatiivinen asenne ja päteminen valuvatkin yli äyräiden. edit: Poistettu pari novellinmittaa leppoisaa turinointia. Mitäpä minä mielipiteistäsi. editoitu: 11:52 10.5.10 Grez 11:19 10.5.10 No ei pidä ottaa henkilökohtaisesti. Olisi vaan kiva nähdä tilanne missä on oikeasti hyötyä "käsitellä lukua heksana" tai edes tietää, mitä se käytännössä tarkoittaa. Siis toki pystyn keksimään tilanteita, missä se olisi järkevää, mutta silloin vaatimusmäärittely haiskahtaisi. Jokin tuossa nyt vaan haiskahti. Ehkä se oli sitten protokollan määritys, kuten itsekin sanoit. "Epästandardi pakettiprotokolla" nyt muutenkin kuulostaa automaatti-WTF:ltä. editoitu: 14:44 10.5.10 tino 12:52 10.5.10 No äkkiseltään nyt esimerkiksi vaikka nappaat hibyten/lobyten vapaavalintaisesta luvusta käyttämättä tuota aina niin hyödytöntä heksamuotoa missään vaiheessa. Sen jälkeen yhdistät vaikkapa 0x47f0 ja 0x460f siten, että lopputulos on 0x4746f00f (vuoroin siis haettu siivu kummastakin yhdistettävästä). Jos homma haiskahtaakin heksalta, tarjolla ei ole kuin NAKkeja ja Vuoden Tunari -pysti. :) edit: No eihän nämä tälleen yksistään toimi varsinaisesti esimerkkinä. Nakkeja itelleni. |
![]() Haku
|