Progrämmchen von Hex in %

Gast #913594
Lesenswert?

Hallo Forumgemeinde,

ich beschäftige mich gerade mit einer Anwendung in der ich ständig von 
einem Bytewert in Prozent umrechnen muss. Ich möchte nicht ständig einen 
Taschenrechner verwenden in dem ich „(X * 255 / 100) [dez]  umwandeln 
in HEX eingeben muss.
Ich habe bereits im Internet gesucht. Da gibt es allerdings kein 
passendes Programm. Man findet umrechnen von „Hex2Dez“ oder „Dez2Hex“ 
aber kein „Hex2%“.
Hat jemand eventuell eine Idee?? Mit welchem Programm kann man eventuell 
ein eigenes Programm schreiben?

Viele Grüße, Marcel
Gast #913622
Lesenswert?

Hallo!

Das Problem kenne ich, deshalb habe ich mir mal einen kleinen 
Kommandozeilen-Rechner geschrieben der auch mit Hex und Binärzahlen 
umgehen kann.
Ist in C# geschrieben, sollte aber sich aber auch unter Linux mit Mono 
starten lassen.
Bsp.: ((0xFF / 12) >> 0b101)^02 to bin

Lg
Angehängte Dateien:
Gast #913642
Lesenswert?

Hallo mars,
erst mal danke für dein "Progrämmchen" :o)

Leider verstehe ich nicht genau wie ich das Programm verwenden soll. 
SORRY!! Könntest du mir mal ne kurze Einweisung geben! Wäre wirklich 
sehr nett!!!!

Gruß Marcel
Gast #913663
Lesenswert?

Hi Marcel!

Eingabeaufforderung starten(Start->Ausführen cmd eingeben) und in das 
Verzeichnis wechseln in das du "CmdCalc.exe" gespeichert hast(cd 
"C:\Foo\Bar").
Um dir hex to % auszurechnen folgendes in die Eingabeaufforderung 
eingeben:
cmdcalc "0x80 / 0xFF * 100" Wobei du 0x80 durch deine Hex-Zahl ersetzen 
musst.

Lg
Gast #913788
Lesenswert?

Woher kommt der Bytewert?
Kannst Du ihn nicht gleich als Prozentwert ausgeben?

Welche ProgSprache?

Aber: wenn man lange genug mit Hexzahlen umgeht, hat man das Umrechnen 
"im Gefühl".
40 25%
80 50%
c0 75%

Immer darauf achten, ob ff 100% oder 99,61% sein soll.

Eine Tabelle wäre auch einfach, wie Max schon andeutete.
Gast #913823
Lesenswert?

@eProfi,
das wir uns richtig verstehen...
Es hat nichts mit der direkten Umrechnung im Controller zu tun. Ich 
möchte prozentual etwas ansteuern und gebe dementsprechend eine Hex-Zahl 
vor die dem Wert entspricht. Klar verwende ich bekannte Werte: 20% = 
0x33, 40% = 0x66, 60% = 0x99. Es lassen sich ja auch alle Werte mit 
einem Taschenrechner ermitteln, das bekomme ich ja ohne Probleme hin. 
Ich dacht einfach nur es gäbe ein Programm in dem ich 20% eintippe und 
ich dann 0x33 als Wert angezeigt bekomme. Genauso in die andere 
Richtung. 0x66 als Eingabe und 40% als Ergebnis.

Grüße, Marcel
Gast #914195
Lesenswert?

Hast du einen C-Compiler? Wenn ja:
1
#include <stdio.h>
2
#include <string.h>
3

4
int main(void) {
5
  static char str[10];
6
  int n, i, p;
7

8
  for(;;) {
9
    printf("> "); scanf("%s", str);
10
    sscanf(str, "%i", &n);
11
    if(str[strlen(str)-1] == '%') {
12
      p = n;
13
      i = n * 255 / 100;
14
    }
15
    else {
16
      i = n;
17
      p = i * 100 / 255;
18
    }
19
    printf("%3d 0x%.2x %3d%%\n", i, i, p);
20
  }
21
  return 0;
22
}

Der Wert wird entweder hexadezimal (z.B. 0x30), prozentual (z.B. 25%)
oder dezimal (z.B. 80) eingegeben. Ausgegeben wird der Wert in allen
drei Formaten. Beispiel (Die Zeilen mit > sind die Eingabezeilen):
1
> 0x30
2
 48 0x30  18%
3
> 25%
4
 63 0x3f  25%
5
> 80
6
 80 0x50  31%
7
>

Je nachdem, wie das Ergebnis gerundet werden soll (in der jetzigen
Version wird abgerundet), müssen die Zeilen mit den Divisionen noch
etwas angepasst werden.
Gast #914948
Lesenswert?

Puhhh, das ist ja genial!!! Das habe ich so gemeint!!!
SUPER, vielen Dank. Das habe ich gesucht und bin jetzt glücklich.

Ich denke mal das sich bald viel mehr Leute diesen Programm runter laden 
werden.

Wäre eigentlich eine zusätzliche Anzeige in Binär möglich?? (wäre 
bestimmt cool, ist aber nur ein Vorschlag!!!!)

Mal ne andere Frage.... Wie hast du denn das jetzt gemacht?? Mit was für 
einer Software macht man soetwas?? Das finde ich wirklich SEHR 
interesant!! Über ein paar nähere Infos wäre ich sehr dankbar!!

Viele Grüße,

Marcel (",)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren