mikrocontroller.net

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


Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paulo M. (paulo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich würde Excel nehmen.

Gruß Paulo M.

Autor: mars (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: max (Gast)
Datum:

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

Autor: mars (Gast)
Datum:

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

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

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

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Nick Ma. (nickma)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: j.... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal sehen

Gruß

Autor: Micha (Gast)
Datum:

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

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du einen C-Compiler? Wenn ja:
#include <stdio.h>
#include <string.h>

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

  for(;;) {
    printf("> "); scanf("%s", str);
    sscanf(str, "%i", &n);
    if(str[strlen(str)-1] == '%') {
      p = n;
      i = n * 255 / 100;
    }
    else {
      i = n;
      p = i * 100 / 255;
    }
    printf("%3d 0x%.2x %3d%%\n", i, i, p);
  }
  return 0;
}

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):
> 0x30
 48 0x30  18%
> 25%
 63 0x3f  25%
> 80
 80 0x50  31%
>

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.

Autor: bussard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe dir was programmmiert schick mir ne mail an
bussard.s64@googlemail.com

dann schicke ich es dir zu ...

gruss bussard

Autor: j.... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcel (Gast)

morgen...

wenn noch nötog

Autor: j.... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ohne EingabeFehlerAbfangung

wenn es nützt?

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 (",)

Autor: j.... (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: bussard.s64 (Gast)
Datum:

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

Autor: j.... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

habe bischen weitergeübt.

Ohne EingabeFehlerAbfangung

Gruß

Autor: ........ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
......

Autor: Marcel (Gast)
Datum:

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

Autor: j.... (Gast)
Datum:

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

gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.