Moin Moin, wieso meckert der Compiler?
1 | uint value = 0b00000001; |
2 | value &= ~(1 << 0); |
Er sagt -> "Der Konstantwert "-2" kann nicht in "uint" umgewandelt werden. Wie umgehe ich das? Casting?
|
Forum: PC-Programmierung C# - Bit löschenMoin Moin, wieso meckert der Compiler?
Er sagt -> "Der Konstantwert "-2" kann nicht in "uint" umgewandelt werden. Wie umgehe ich das? Casting?
Beitrag #5762407 wurde vom Autor gelöscht.
Dirk K. schrieb: > ??? Wo ist dein Problem? Das ist doch genau das zu erwartende Ergebnis. Wenn nur Bit0 gesetzt war, wird nach dem Löschen von Bit0 wohl was herauskommen? c-hater schrieb: > Dirk K. schrieb: > >> ??? > > Wo ist dein Problem? Das ist doch genau das zu erwartende Ergebnis. Wenn > nur Bit0 gesetzt war, wird nach dem Löschen von Bit0 wohl was > herauskommen? Häh? Das "???" bezog sich auf die Aussage, der Compiler würde das nicht akzeptieren. Mein Screenshot zeigt aber, dass dem nicht so ist. Geh woanders trollen. merciless Harry L schrieb: > Der Compiler beschwert sich immer noch bzgl. des Syntax. Also bei mir gehen auch beide Varianten. Dirk K. schrieb: > Häh? Das "???" bezog sich auf die Aussage, der > Compiler würde das nicht akzeptieren. Und woher, bitteschön, sollte man wissen, dass sich das darauf bezog? > Geh woanders trollen. Lerne erstmal so zu zitieren, dass man weiss, worauf sich deine Statements beziehen, bevor du es wagen kannst, mit den Erwachsenen zu diskutieren. c-hater schrieb: > Und woher, bitteschön, sollte man wissen, dass sich das darauf bezog? Aus der Kombination des Screenshots und des Textes. Im Kontext des Threads ist das jetzt echt nicht besonders kompliziert zu erkennen, zumal im Posting unmittelbar vor dem Posting mit dem Screenshot das hier steht: > Der Compiler beschwert sich immer noch bzgl. des Syntax. Mir scheint, nicht Dirk hat ein Problem, sondern Du: > bevor du es wagen kannst, mit den Erwachsenen zu diskutieren. Noch mehr Dinge, von denen Du keine Ahnung hast. Rufus Τ. F. schrieb: > Aus der Kombination des Screenshots und des Textes. Ach? Der Sreenshot zeigt: alles ist OK und wie es sein sollte und der Text sagt: "???". Wie soll man daraus erkennen, dass ich das "???" auf etwas ganz anderes bezieht? > Im Kontext des > Threads ist das jetzt echt nicht besonders kompliziert zu erkennen Das wäre wohl so, wenn es in diesem Forum statt der TeleTubbi-Linear-Listen echte Thread-Darstellungen gäbe, also Bäume. Dann (und nur dann) könnte man sowas notfalls tatsächlich allein dem Thread-Kontext ermitteln (aber auch dann wäre ein korrektes Zitat immer noch durchaus wünschenswert und hilfreich). Diese, überaus sinnvolle und seit 40 Jahren bewährte Baumstruktur (z.B. von Anfang an Standard im UseNet) ist aber leider bekanntermaßen hier immer noch nicht verfügbar. Wohl mit Rücksicht auf die Dummies, denen sowas "kompliziertes" wie ein Baum nicht zugemutet werden kann, weil schon diese primitive Struktur ihre intellektuellen Fähigkeiten weit überfordert... Ja, OK, in Oma Gertrudes Häkelforum hätte ich dafür vielleicht sogar noch Verständnis. Aber nicht in einem µC-Forum... Rufus Τ. F. schrieb: > Das stinkt nach Ausrede. OK, dann bitte mal "Butter bei die Fische". Woran genau hätte ich erkennen müssen, dass das "???" sich 1) überhaupt auf ein anderes Posting bezog und 2) auf welches genau Mach' mich schlau, Grosser Meister... Scroll drei Zentimeter nach oben, wenn Du den Screenshot siehst. Daß dieses Forum überwiegend sequentiell funktioniert, könntest auch Du in den vergangenen Jahren mitbekommen haben; hast es ja immerhin gerade geschafft, einen Rant darüber abzulassen. Und zwischen den beiden Beiträgen ist auch genug Zeit verstrichen, daß klar ist, daß vor dem Posten des Beitrags mit dem Screenshot auch der Beitrag unmittebar davor gesehen wurde. Beitrag "Re: C# - Bit löschen" Beitrag "Re: C# - Bit löschen" (Der Beitrag dazwischen wurde von Dirk selbst gelöschter, warum auch immer) Rufus Τ. F. schrieb: > Scroll drei Zentimeter nach oben, wenn Du den Screenshot siehst. > > Daß dieses Forum überwiegend sequentiell funktioniert, könntest auch Du > in den vergangenen Jahren mitbekommen haben; hast es ja immerhin gerade > geschafft, einen Rant darüber abzulassen. > > Und zwischen den beiden Beiträgen ist auch genug Zeit verstrichen, daß > klar ist, daß vor dem Posten des Beitrags mit dem Screenshot auch der > Beitrag unmittebar davor gesehen wurde. > > Beitrag "Re: C# - Bit löschen" > > Beitrag "Re: C# - Bit löschen" > > (Der Beitrag dazwischen wurde von Dirk selbst gelöschter, warum auch > immer) Du salbaderst offensichtlich rum. Es gibt definitiv keine Information, aus der ich den Bezug hätte entnehmen können. Allenfalls hätte ich ihn mit hohem Aufwand und einem gewissen Mass an Heuristik erahnen können. Das ist im Kern, was du da ausdrückst. Kommt dir das nicht selber etwas erbärmlich vor? Insondere angesichts dessen, was vor fast einem halben Jahrhundert im Usenet schon absolut kein Problem war? c-hater schrieb: > Du salbaderst offensichtlich rum. Es gibt definitiv keine Information, > aus der ich den Bezug hätte entnehmen können. Allenfalls hätte ich ihn > mit hohem Aufwand und einem gewissen Mass an Heuristik erahnen können. > Das ist im Kern, was du da ausdrückst. Tut mir leid für dich. Irgend wie hat das jeder hier hinbekommen außer dir. Vielleicht liegst du in diesem Fall einfach falsch. c-hater schrieb: > Insondere angesichts dessen, was vor fast einem halben Jahrhundert im > Usenet schon absolut kein Problem war? Nach Deinem Auftreten in diesem Forum gerade in letzter Zeit würde ich klar sagen: Dich braucht dieses Forum nicht. Such' Dir doch 'ne andere Trollwiese, wo Du herumpöbeln kannst. Rufus Τ. F. schrieb: > (Der Beitrag dazwischen wurde von Dirk selbst gelöschter, warum auch > immer) So, dann kläre ich das hier mal auf: Ursprünglich sah mein Post so aus:
mit Anhang. Leider war der Screenshot nicht ganz eindeutig. Deswegen habe ich einen 2. gemacht. Ich hab einfach meinen Post gelöscht und wollte den nochmal genauso anlegen. Gesagt getan, Anhang dran und das Posten hat nicht funktioniert. Reload der Seite etc. - nichts. Also habe ich das Zitat weggelassen und gepostet, das ging. Für einen Mitteleuropäer, der halbwegs geistig normal entwickelt ist, sollte sich der Sinn der 3 Fragezeichen auch aus dem Kontext ergeben. Aber der Herr, der lieber Pascal programmiert, hat wohl gedacht in diesem Thread ist fein trollen möglich. Ich habe bei meinem ersten Post schon geprüft, ob der Compiler das frisst. Und über 20 Jahre Programmiererfahrung haben auch Grundkenntnisse in den Bitoperatoren bei mir hinterlassen. Ich verbessere doch keinen Code, den ich nicht verstanden habe! merciless Dirk K. schrieb: > Deswegen habe ich einen 2. gemacht. > Ich hab einfach meinen Post gelöscht und wollte > den nochmal genauso anlegen. Gesagt getan, Anhang > dran und das Posten hat nicht funktioniert. Die Forumssoftware verweigert das mehrmalige Posten ein- und desselben Textes, um so Spammern einen Riegel vorzuschieben. Leider nützt das vorherige Löschen des Originalbeitrags nichts, denn es hätte ja genauso von einem Moderator vorher als Spam erkannt werden und von ihm gelöscht werden können. Okay, man könnte zwar diese beiden Fälle unterscheiden, aber das ist nicht Thema dieses Threads. > Für einen Mitteleuropäer, der halbwegs geistig normal > entwickelt ist, sollte sich der Sinn der 3 Fragezeichen > auch aus dem Kontext ergeben. Ich habe ohne das Zitat - zugegebenermaßen - ca. eine Sekunde mehr gebraucht, um den Kontext zu verstehen. War also schon etwas schwieriger ;-) Frank M. schrieb: > Dirk K. schrieb: >> Für einen Mitteleuropäer, der halbwegs geistig normal >> entwickelt ist, sollte sich der Sinn der 3 Fragezeichen >> auch aus dem Kontext ergeben. > > Ich habe ohne das Zitat - zugegebenermaßen - ca. eine Sekunde mehr > gebraucht, um den Kontext zu verstehen. War also schon etwas schwieriger > ;-) Böse Zungen würden jetzt behaupten, dass Lesekompetenz nun mal sehr ungleich verteilt ist. Was für dich eine Sekunde dauert, dauert bei (mindestens einem) anderen Tage, Wochen oder klappt nie. Aber vielen Dank für die Erläuterung (die ich aus dem Zitat gelöscht habe). MfG, Arno Dieses Forum ist einfach der Hammer. 5 Beiträge unter einem komplett sachlichen Thread und es eskaliert schon wieder. :-D Grandios.
Harry L. schrieb: > wieso meckert der Compiler? Weil (1 << 0) vom Typ int ist, wenn Du das invertierst, setzt Du das Bit für negatives Vorzeichen und der dadurch entstandene Wert (-2) passt nicht in einen uint. > Wie umgehe ich das? Casting? genau, das bereits gezeigte
ist die Kurzform des Castings. Die 1 wird als unsigned gekennzeichnet, damit bleibt es auch nach dem Schieben ein uint. PS : Mein Wuschel Studio mag keine Binärzahlen mit dem Präfix 0b annehmen. Willkommen zurück aus der Microchip Welt... fop schrieb: > Mein Wuschel Studio mag keine Binärzahlen mit dem Präfix 0b annehmen. Damit hat es auch recht; das 0b-Präfix ist kein Bestandteil irgendeiner C- oder C++-Spezifikation, sondern eine nichtportable Erweiterung. Man sollte darauf verzichten. Rufus Τ. F. schrieb: > Damit hat es auch recht; das 0b-Präfix ist kein Bestandteil > irgendeiner C- oder C++-Spezifikation, sondern eine nichtportable > Erweiterung. In C# ist es wohl seit Version 7.0 möglich Binär Literale zu benutzen: https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/keywords/uint c-hater schrieb: > Rufus Τ. F. schrieb: > >> Das stinkt nach Ausrede. > > OK, dann bitte mal "Butter bei die Fische". Woran genau hätte ich > erkennen müssen, dass das "???" sich > Andere (sogar ich, beim flüchtigen drüberlesen) habens verstanden. Das dürfte doch genügen. Noch besser: Es bemühen sich doch einige, dir das zu erklären. Und du kommst stattdessen mit Bäumen aus dem letzten Jahrhundert. Tek schrieb: > In C# ist es wohl seit Version 7.0 möglich Nun könnte "fop" eine der zahlreichen anderen Programmiersprachen verwendet haben, die man mit Visual Studio nutzen kann - C, echtes C++, MS-pervertiertes C++ (C++/CLI, "Managed C++" etc.) oder irgendeine andere .Net-Sprache. Leider schreiben die wenigsten, die sich auf Visual Studio beziehen, welche Programmiersprache sie tatsächlich einsetzen (oder verwechseln, falls sie es doch tun, gerne echtes C++ mit den MS-pervertierten Varianten).
Beitrag #5768146 wurde vom Autor gelöscht.
C# in VS Express 2013 Wie man jetzt die Jahreszahl in eine Zahl kleiner als 7 umrechnet weiß ich gerade nicht. Als Zielframework war zufällig .NET 4.5 ausgewählt. fop schrieb: > C# in VS Express 2013 > > Wie man jetzt die Jahreszahl in eine Zahl kleiner als 7 umrechnet weiß > ich gerade nicht. > > Als Zielframework war zufällig .NET 4.5 ausgewählt. Ich hab hier VS 2017, das entspricht V15.x V7 müsste im letzten Jahrtausend gewesen sein ;) (Menü Hilfe -> Info über VS) merciless VS2013 Wurde mit C# 5.0 ausgeliefert, 15.X ist nur die Versionsnummer vom Visual Studio. Die 5.0 bzw 7.0 bezieht sich auf die Sprachspezifikation. https://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29#Versions Rufus Τ. F. schrieb: > Damit hat es auch recht; das 0b-Präfix ist kein Bestandteil > irgendeiner C- oder C++-Spezifikation, sondern eine nichtportable > Erweiterung. > > Man sollte darauf verzichten. Ganz genau. Auf C/C++. Eine Sprache, die standardmäßig nichtmal eine adäquate Literaldarstellung für die Grundlage der der ganzen digitalen Rechnerei, nämlich Binärzahlen bietet, ist ein Witz. Ein schlechter. Allein die bloße Existenz dieser "nichtportablen" (ich glaub' mir läuft ein Ei aus) Erweiterung in vielen einschlägigen Compilern zeigt doch nur eins: Der Sprach-Standard taugt nix, wenn fast alle relevanten Compiler sich genötigt sehen, so eine Erweiterung zu implementieren... c-hater schrieb: > Eine Sprache, die standardmäßig nichtmal eine adäquate > Literaldarstellung für die Grundlage der der ganzen digitalen Rechnerei, > nämlich Binärzahlen bietet, ist ein Witz. Nö. C/C++ sind keine Lehrsprachen für Programmieranfänger. Aber darum geht es in diesem Thread überhaupt nicht. > zeigt doch nur eins: Du hast keine Ahnung, aber davon sehr, sehr viel. Wie wäre es, wenn Du Dich fortan nur noch in Threads zu Wort meldest, in denen es um die 68k-Assemblerprogrammierung geht? Denn von der gibst Du ja vor, Ahnung zu haben. 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.
|
|