FSK B

>b's weblog

News. Journal. Whatever.

Ex-BND-Chef Wieck gibt Folter offen zuJosef Ackermann, der Zauberlehrling

Umwandeln von Hex zu Dezimal und umgekehrt in YSLT

… nur weil wirs kürzlich in einer Diskussion im Usenet davon hatten:

function "hex2dec" {
    param "hex";
    param "_result", 0;
    
    const "hd", "substring($hex, 1, 1)";
    const "a", """translate($hd, 'ABCDEFabcdef123456789',
                    '123456123456000000000')""";

    const "d" choose {
        when "$a>0" value "$a + 9";
        otherwise value "$hd";
    }

    choose {
        when "string-length($hex) = 1"
            value "$_result * 16 + $d";
        otherwise call "hex2dec"
            with "hex", "substring($hex, 2, 8)", 
            with "_result", "$_result * 16 + $d";
    }
}

function "dec2hex" {
    param "dec";
    param "_div", !16**7!;

    const "v", "floor($dec div $_div)";
    value "substring('0123456789abcdef', $v + 1, 1)";

    if "$_div > 1" call "dec2hex"
        with "dec", "$dec - $_div * $v",
        with "_div", "$_div div 16";
}

Das kann man mit yml2proc nach XSLT umwandeln. (Letzteres kann vielleicht mal jemand brauchen ;-)

publiziert Mon, 05 Sep 2011 19:05:07 +0200 #software #xslt #yslt

Zurück zum Blogindex