- 3D-Druck Einstieg und Tipps         
Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 48 von 48

Thema: schon mal festgestellt? A. Due rechnet falsch - Mega ok!

  1. #41
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Anzeige

    Praxistest und DIY Projekte
    Ein char ist halt gut genug, ein character, einen Buchstaben zu speichern. Buchstaben haben nichts ansich, was die Bedeutung eines Vorzeichens hat. Deswegen macht signed oder unsigned bei Buchstaben keinen Sinn und ist für ein char nicht vorgegeben. Überhaupt macht das Rechnen mit Buchstaben keinen Sinn (außer so ein paar Tricks die Groß in Kleinbuchstaben rechnen o.ä.).

    Wenn ich eine Ganzzahl, einen Integer, haben möchte, der in 8 Bit passt, dann sollte ich das auch so sagen: int8_t. Da gibts dann keine Zweideutigkeiten oder Compilerabhängigkeiten. Obwohl man bei den heute verfügbaren Speichergrößen das einfach knicken und int nehmen sollte: dann klappts auch mit dem Nachbarn, äh mit jedem anderen Prozessor oder Kompiler

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  2. #42
    HaWe
    Gast
    Mann, du Roboter-Genie... das ist doch jetzt wirklich müßig, das zum hunderttausendsten Mal jetzt noch mal besserwisserisch aufzuwärmen - danke aber für den netten Versuch

    (ps, edit: immerhin ist der Code auch viel älter als 2011, und davor gabs noch gar kein int8_t, char war und ist immer noch ein gültiger Datentyp in C, und signed char mit negativen Werten sicher auch nicht als "negative Buchstaben" zu verstehen - aber auch das ist hier inzwischen völlig belanglos, das Problem ist ja auch darüberhinaus längst erkannt und gelöst. Hier mit "Wort-eigentümlichen" semantischen Begrifflichkeiten zu jonglieren, entbehrt auch jeder Grundlage - was, bitte ist dann ein Bissen? oder ein Wort? Oder ein Unversehrtes? oder ein Langes? Dein Post ist also nicht nur sachlich falsch - sondern auch absolut (!) mehr als flüssig... Naja, manche können es halt nicht lassen...)
    Geändert von HaWe (21.11.2014 um 08:44 Uhr)

  3. #43
    Erfahrener Benutzer Begeisterter Techniker Avatar von Andre_S
    Registriert seit
    26.06.2005
    Beiträge
    360
    Zitat Zitat von Klebwax Beitrag anzeigen
    Ein char ist halt gut genug, ein character, einen Buchstaben zu speichern. Buchstaben haben nichts ansich, was die Bedeutung eines Vorzeichens hat. Deswegen macht signed oder unsigned bei Buchstaben keinen Sinn und ist für ein char nicht vorgegeben. Überhaupt macht das Rechnen mit Buchstaben keinen Sinn (außer so ein paar Tricks die Groß in Kleinbuchstaben rechnen o.ä.).
    ...
    MfG Klebwax
    Hallo,
    wir sollten nicht alles verallgemeinern, es trifft halt nicht überall zu…

    Auszug aus meiner Entwicklungsumgebung „mikroC für dsPIC:

    Type Size in bytes Range
    Bit 1–bit 0 or 1
    Sbit 1–bit 0 or 1
    (unsigned) char
    1 0 .. 255
    signed char 1 - 128 .. 127
    (signed) short (int) 1 - 128 .. 127
    unsigned short (int) 1 0 .. 255
    (signed) int 2 -32768 .. 32767
    unsigned (int) 2 0 .. 65535
    (signed) long (int) 4 -2147483648 .. 2147483647
    unsigned long (int) 4 0 .. 4294967295


    Gruß André

  4. #44
    HaWe
    Gast
    danke für die Schützenhilfe, aber für Intel x86, Win32, Win64, und AVR von Arduino Micro über Uno und Leonardo bis Mega wird "char" als "signed" behandelt.
    Aber wie gesagt, Schnee von gestern. Die tollen Arduino-IDE-Programmierer hätten da in ihr tolles Sketch für gefühlt 10000 verschiedene Boards wenigstens eine Compilerwarnung für den Due einbauen können, wenn sie char jetzt plötzlich anders behandeln als für die 9999 übrigen Boards.

    Ich denke, mit deiner Übersicht und diesen abschließenden Worten können wir das Thema schließen und uns jetzt wieder der Zukunft zuwenden. 8-)

    (editiert, erst falsch rum gelesen)
    Geändert von HaWe (21.11.2014 um 09:08 Uhr)

  5. #45
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Andre_S Beitrag anzeigen
    Hallo,
    wir sollten nicht alles verallgemeinern, es trifft halt nicht überall zu…

    Auszug aus meiner Entwicklungsumgebung „mikroC für dsPIC:

    Type Size in bytes Range
    Bit 1–bit 0 or 1
    Sbit 1–bit 0 or 1
    (unsigned) char
    1 0 .. 255
    signed char 1 - 128 .. 127
    (signed) short (int) 1 - 128 .. 127
    unsigned short (int) 1 0 .. 255
    (signed) int 2 -32768 .. 32767
    unsigned (int) 2 0 .. 65535
    (signed) long (int) 4 -2147483648 .. 2147483647
    unsigned long (int) 4 0 .. 4294967295
    Diese Tabelle hat leider einen kleinen Schönheitsfehler, und der beschreibt auch das ganze Problem hier. Sie gilt nur für mikroC. Es gibt in C keine Vorgabe, ob ein char (ohne einen Zusatz) als signed oder unsigned behandelt wird. Warum, habe ich beschrieben. Jeder Compiler kann es also anders halten, und tut es auch, wie dieser Tread zeigt.

    Um diesen und ähnlichen Problemen aus dem Wege zu gehen, gibts nun mal stdint.h.

    danke für die Schützenhilfe, aber für Intel x86, Win32, Win64, und AVR von Arduino Micro über Uno und Leonardo bis Mega wird "char" als "signed" behandelt.
    Das hängt nicht vom Prozessor ab, sondern vom Compiler
    Aber wie gesagt, Schnee von gestern. Die tollen Arduino-IDE-Programmierer hätten da in ihr tolles Sketch für gefühlt 10000 verschiedene Boards wenigstens eine Compilerwarnung für den Due einbauen können, wenn sie char jetzt plötzlich anders behandeln als für die 9999 übrigen Boards.
    Die IDE ist nur das Frontend für irgendeinen Compiler, den kann man meist sogar tauschen. Die IDE kann also nicht wissen, wie sich der gerade eingestellte Compiler verhält.

    Es ist doch ganz einfach: wer sicher sein will, daß sein char signed ist, muß es explizit hinschreiben! Oder, um mich zu wiederholen, stdint.h.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  6. #46
    Erfahrener Benutzer Begeisterter Techniker Avatar von Andre_S
    Registriert seit
    26.06.2005
    Beiträge
    360
    Hallo,

    belassen wir es doch einfach dabei,.. dann passt es "sogar" für microC

    Zitat Zitat von Klebwax Beitrag anzeigen
    ... wer sicher sein will, daß sein char signed ist, muß es explizit hinschreiben!
    ...
    MfG Klebwax

    Gruß André

  7. #47
    HaWe
    Gast
    mein Gott, Klebwax, kleb dir deine Besserwisserei doch irgendwohin.
    Für Leute, die erst nichts zur Problemlösung beitragen, und hinterher, wenn alles klar ist, alles nochmal aufwärmen und breittreten, als hätten sie die Weisheit mit Löffeln gefressen, habe ich EINIGE Kategorien zu vergeben.
    Klugscheißer und Korinthenkacker sind noch die mildesten.

  8. #48
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    @Klebwax:
    Zitat Zitat von Klebwax Beitrag anzeigen
    Diese Tabelle . . . gilt nur für mikroC. . . Jeder Compiler kann es also anders halten

    Um diesen und ähnlichen Problemen aus dem Wege zu gehen, gibts nun mal stdint.h.
    Danke Dir und den anderen. Ich hab was gelernt, um irgendwann in Zukunft C-Source pflegbar portabel zu schreiben: nämlich das einziehen einer Abstraktionssebene für die Typbezeichner.

    Leider ist Abstraktion nicht jedermanns Sache.
    Und Selbstbeherrschung bei sozialen Interaktionen auch nicht.

    Zitat Zitat von HaWe Beitrag anzeigen
    mein Gott, Klebwax, kleb dir deine Besserwisserei doch . . .
    Klugscheißer und Korinthenkacker sind noch die mildesten.

Seite 5 von 5 ErsteErste ... 345

Ähnliche Themen

  1. Arduino Mega/Due: i2c Master port multiplexen
    Von HaWe im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 42
    Letzter Beitrag: 12.10.2014, 13:51
  2. Schon wieder: Problem mit I2C (c, mega8, mega 32)
    Von avrrobot im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 19.01.2012, 20:10
  3. mega 128 hängt sich auf /oder schon tod?
    Von demlinger im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 09.09.2007, 20:34
  4. Rechnet der AVR falsch oder bin in ich nur zu dumm ?
    Von NumberFive im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 11.02.2005, 14:35
  5. Schon mal an eine Ethernetschnittstelle gedacht?
    Von roboguy im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 27.10.2004, 22:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test