Jeli nekome možda poznata neka funkcija u C ,bash ili Perl-u kojoj predam hexadecimalni i ona mi vrati decimalni broj ?
Požurio sam sa pitanjem. Riješio sam u perlu:
#!/usr/bin/perl -w
$num = 0xff ;
print $num ;
Isto je moguce i u C-u …
#include <stdio.h>
int main(void)
{
int hamo = 0xa1;
printf("%d",hamo);
return 0;
}
Vidi se koliko su srodni jezici , ipak nisam uspio da predam i da mi vrati. ???
koji ti je “signature” od metode? nesto kao:
mozes li nam dati ‘requirements’?
b
Nerazumijem šta misliš ali radi se o tome da predam programu npr. dva argumenta (hexadecimalna broja) i ovaj mi ispise iste u decimalnoj formi. Nešto kao:
$ hex2dec 0xff 0x3e
$ 255 62
Mogao bi to matematički riješiti ali rekoh možda postoji neka funkcija za to koja mi nije poznata.
Evo ga.
#!/bin/bash
printf "%u %un" $1 $2
exit 0
Ako ko nadje u perlu rjesenje neka posta. Sa printf nije funkcionisalo .
ok, ta 2 parametra sa ‘command line’ su ti String znaci, tj. char* u C. Nazalost ja neznam Perl ili PHP, tako da neznam nijihove tipove.
Sto se tice tvog problema, ti zelis neku vrstu parsera jer su ti programski input parametri String. Npr. u Javi:
/* Hex2Dec.java */
public class Hex2Dec {
public static void main(String[] args) {
try {
int dec = Integer.parseInt(args[0], 16);
System.out.println("Hex: " + arg[0]);
System.out.println("Dec: " + dec);
}
catch(NumberFormatException ex) {
System.err.println("Unesite hex vrijednost poput 'ff' ili 'f6', a ne " + args[0]);
}
}
}
to isto u C/C+±u je nesto poput:
/* hex2dec.c */
#include <stdio.h>
int main ()
{
char str [80];
int i;
printf ("Unesite hexadecimalni broj: ");
scanf ("%x",&i);
printf ("Hex: %#xn",i,i);
printf ("Dec: %dn",i,i);
return 0;
}
Eto, sad mozes uraditi zadacu
ovo radi na mom Mac OS X-u i Cygwin-u
#!/bin/bash
echo Hex 0x$1
echo Dec $[0x$1]
test:
root# ./hex2dec.sh ff
Hex 0xff
Dec 255
root#
$ perl -e "print hex '0xff';"
255
wow … jedna linija :))) svaka cast :))
evo jedna linija:
$ echo $[0xff]
255
Evo uopšten Benkin prijedlog:
echo $[16#ff]
ili
echo $((2#101010))
Sada do mile volje možete pisati brojeve sa bazom 17, lol
Source : Advanced Bash Scripting Guide (“8.2 - Numerical Constants”)