Hexadecimalni u Decimalne brojeve

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 :slight_smile: , 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 :wink:

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”)