Tapahtuuko se jotenkin sprintf - käskyn avulla?
Desimaaliluvut heksadesimaaliluvuiksi
6
1340
Vastaukset
- ...
sprintf("%h",22)?
- jopa itoalla
en tiedä miten toimii floateilla mutta kokonaisluvuilla voi käyttää itoaa.
char str[80];
int numero;
printf("luku %s",itoa(numero,str,2)); // tulostaa binäärinä, kantaluku 2
printf("luku %s",itoa(numero,str,10)); // tulostaa normaalisti
printf("luku %s",itoa(numero,str,16)); // tulostaa heksana- perliä olisi
Aloittaja olisi halunnut varmaan perl esimerkin. Sorry.
Seuraava esimerkki toimii UNIX -komentoriviltä. Tuo $n=6 tarkoittaa lukua joka muunnetaan desimaaliluvuksi. Pienin muutoksin rivi toimii myös ohjelmatiedoston osana.
#perl -e '$n=6;$b=chr(int($n/16) 48);$b=~tr/:;?/A-F/;$a=chr(($n) 48);$a=~tr/:;?/A-F/;print "$b$a \n";'
#Ylläoleva rivi muuttaa desimaaliluvun (välillä 0-255) heksadesimaaliluvuksi ja lisää tarvittaessa etunollan.
Toisinpäin juttu olisi varsin helppo:
print hex(FF);
tulostuu:
255printf '%X', 62; # Tulostaa '3E'.
printf '%x', 62; # Tulostaa '3e'.
http://perldoc.perl.org/functions/sprintf.htmlWhitelighter kirjoitti:
printf '%X', 62; # Tulostaa '3E'.
printf '%x', 62; # Tulostaa '3e'.
http://perldoc.perl.org/functions/sprintf.html#!/usr/bin/perl -w
$a=3;
$a=sprintf '% X',$a; #muutetaan $a hex-luvuksi
$a=~s/^.$/0$a/; #jos $a on yksimerkkinen, lisätään alkuun nolla.
print "$a\n";
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 692713
- 632654
- 681792
- 241617
- 201550
Tykkään susta
Elämäni loppuun asti. Olet niin suuresti siihen vaikuttanut. Tykkäsit tai et siitä91480- 151392
- 381233
- 401203
Onko meillä
Molemmilla nyt hyvät fiilikset😢ei ainakaan mulla mutta eteenpäin on mentävä😏ikävä on, kait se helpottaa ajan myötä. Ko81197