Forum: Mikrocontroller und Digitale Elektronik Progrämmchen von Hex in %


von Marcel (Gast)


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

von Paulo M. (paulo)


Lesenswert?

Hallo,
ich würde Excel nehmen.

Gruß Paulo M.

von mars (Gast)


Angehängte Dateien:

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

von max (Gast)


Lesenswert?

1
perl -e 'printf("%x : %i\n", $_, $_*100/255) for 1..255;'

von mars (Gast)


Lesenswert?

In deinem Fall also
:>cmdcalc "ToInt((x * 255/100)) to Hex"

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Der Windows-Rechner in Stellung "scientific" rechnet um, wenn man auf 
den "Hex"-Knopf umschaltet

von Marcel (Gast)


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

von mars (Gast)


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

von eProfi (Gast)


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.

von Nick M. (nickma)


Lesenswert?

Hi,
ich kann in all diesen Zusammenhängen nur den "Calcutta" - Calculator 
empfehlen.
http://home.arcor.de/0xdeadbeef/Calcutta.htm

Ist auch angenehm um Ergebnisse von Bit-Shifting zu berechnen.

Greez, Nick

von Marcel (Gast)


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

von j.... (Gast)


Lesenswert?

mal sehen

Gruß

von Micha (Gast)


Lesenswert?

Hast Du Excel? --> "=Dec2Hex(A1*255/100)", wobei in der Zelle "A1" der 
Prozentwert steht :-)

von yalu (Gast)


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.

von bussard (Gast)


Lesenswert?

habe dir was programmmiert schick mir ne mail an
bussard.s64@googlemail.com

dann schicke ich es dir zu ...

gruss bussard

von j.... (Gast)


Lesenswert?

Marcel (Gast)

morgen...

wenn noch nötog

von j.... (Gast)


Angehängte Dateien:

Lesenswert?

Ohne EingabeFehlerAbfangung

wenn es nützt?

von Marcel (Gast)


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 (",)

von j.... (Gast)


Lesenswert?

@Marcel (Gast)

VB2005.Net

War für mich jetzt eine Übung.
noch Bin. und Dez geht auch .

Wenn du willst erweitere ich es.

gruß

von bussard.s64 (Gast)


Lesenswert?

Krass krass,
ok das ist besser als meines , meines läuft auf konsolen basis ;)
schön gemacht ;)

von j.... (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

habe bischen weitergeübt.

Ohne EingabeFehlerAbfangung

Gruß

von ........ (Gast)


Lesenswert?

......

von Marcel (Gast)


Lesenswert?

Jo, das ist jetzt echt klasse!!!! Vielen Dank für deine Mühe!! Grüße, 
Marcel

von j.... (Gast)


Lesenswert?

hallo
Es wird immer hier sehr viel zeit vergammelt,
man kann die zeit auch sinnvoll vergammeln.

gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.