Hex arvon perässä iso L ?

Terve!

Mitäköhän tuo L mahtaa tuolla hex arvon perässä toimittaa? esim: 0xYYYYYYYYL
4504
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

heksadesimaaliluku

Äänestä

0x osoittaa että kyseessä on hexadecimaalinen luku. Hexadecimaalisessa järjestelmässä on kanta 16 (kymmenjärjestelmässä on kanta 10). Koska ei ole olemassa symboleja luvuille 10,11,12,13,14,15 on ne korvattu kirjaimilla A,B,C,D,E,F. 0XC tarkoittaa siis 12.

Mitään sellaista symbolia kuin Y tai L ei voi esiintyä hex-luvussa.

Tietokoneen raudan rekisteripituus tai ohjelman muuttujatyyppi (8, 16, 32, 64, 128...bittiä) ei mitenkään vaikuta hexluvun esitysmuotoon, se määrää ainoastaan suurimman arvon mitä muuttuja tai rekisteri voi pitää sisäällään (esim 8-bittisessä prosessorissa (kyllä, niitä on ja niitä käytetään paljon ns mikrokontrollereissa alhaisen virrankulutuksen takia) suurin arvo binäri 1111 1111 (kaikki kahdeksan rekisteribitit ylhäällä) vastaa hex 0xFF eli desimali 255).

32 bittisessa koneeessa (tai muuttujassa) se on 0xFFFF FFFF, eli vähän päälle neljä miljardia. Esim liikeelämässä missä laskelmat pitää täsmätä sentin tarkuudella, suurin rahamäärä mitä pystyisi esittää olisi n. 40 milj €. Tällä ei pitkälle pötkitä. Siksi pankit ym. käyttävät BCD-nimistä muuttujatyyppiä (Binary Coded Decimal) jolla voidaan esittää miten suuria kokonaislukuja tahansa (ilman että menetetään tarkuutta laskelmissa kuten tapahtuisi jos käyttäisi liukulukuja). Mutta tämä on sitten toinen asia.

Mutta kuten sanoin: 0xYYYYYL ei tarkoita yhtään mitään (paitsi Compiler error: Undefined symbol).

Äänestä
  • Pahoittelen tuota ilmaisua 0xYYYYYYYYL -> siis tuo Y:n oli esimerkissä niinkuin jokin validi hex kantaluku x...

    "Long":n se viimeinen L tarkoitti, mutta en ymmärrä miksi sitä pitäisi käyttää jossain tapauksessa hex- arvon perässä?

    jääkööt tuo arvoitukseksi, pätkä jota käänsin toiselle kielelle on jo hoidettu, joten kiitos teille!

    Äänestä

C
2 - Lexical conventions
2.13 - Literals
2.13.1 - Integer literals

integer-literal:
   decimal-literal integer-suffixopt
   octal-literal integer-suffixopt
   hexadecimal-literal integer-suffixopt

decimal-literal:
   nonzero-digit
   decimal-literal digit

octal-literal:
   0
   octal-literal octal-digit

hexadecimal-literal:
   0x hexadecimal-digit
   0X hexadecimal-digit
   hexadecimal-literal hexadecimal-digit

nonzero-digit: one of
   1 2 3 4 5 6 7 8 9

octal-digit: one of
   0 1 2 3 4 5 6 7

hexadecimal-digit: one of
   0 1 2 3 4 5 6 7 8 9
   a b c d e f
   A B C D E F

integer-suffix:
   unsigned-suffix long-suffixopt
   long-suffix unsigned-suffixopt

unsigned-suffix: one of
   u U

long-suffix: one of
   l L

Äänestä

Kommentoi aloitusta


c_harrastelija! kirjoitti:

Terve!

Mitäköhän tuo L mahtaa tuolla hex arvon perässä toimittaa? esim: 0xYYYYYYYYL

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu