AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

signed and unsigned types

Ein Thema von EWeiss · begonnen am 21. Mär 2019 · letzter Beitrag vom 21. Mär 2019
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

signed and unsigned types

  Alt 21. Mär 2019, 09:52
Zitat:
[DCC Warning] uSpectrum.pas(760): W1024 Combining signed and unsigned types - widened both operands
Wie kann ich die kombinieren da ich nicht erkenne was signed ist und was nicht.

Delphi-Quellcode:
a := a + (((c and 4278190080) div 16777216) and 255);
a := (((Buf[dx, dy] and 4278190080) div 16777216) and 255) - d;

gruss
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:07
Wie kann ich die kombinieren da ich nicht erkenne was signed ist und was nicht.
Und wo sind die Definitionen? Da sollte man das erkennen können.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:08
Du erkennst was Singed und Unsinged ist am Datentyp.
Von daher wäre es hilfreich gewesen wenn du die Deklaration der Variablen auch gepostet hättest.
Du kannst die Warnung loswerden, indem du entweder die Deklarationen vereinheitlichst oder in der Rechnung durch explizite Casts vereinheitlichst.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:15
Zitat:
Du erkennst was Singed und Unsinged ist am Datentyp.
Davon bin ich auch ausgegangen ist aber nicht so..

x, y, c, w, h, a, d: Integer;

a und c sind beides Integer.. deshalb frage ich ja hier nach und nun?

a := a + (((c and 4278190080) div 16777216) and 255);

gruss

Geändert von EWeiss (21. Mär 2019 um 10:22 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:18
Zitat:
a := ((((Buf[dx, dy] and 4278190080) div 16777216) and 255) - d;
Das kann ich casten und gut ist.. hoffe das macht nachher keine Problem. "Buf" die Rückgabe ist Byte

a := ((Integer((Buf[dx, dy]) and 4278190080) div 16777216) and 255) - d;

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:31
4278190080 ist aber kein Integer...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:37
4278190080 ist aber kein Integer...
Ist er im ersten gecasteten wert auch nicht und da meckert der Compiler nicht mehr.

a := ((Integer((Buf[dx, dy]) and 4278190080) div 16777216) and 255) - d;
ok du meinst dann wohl so!
((Integer(c and 4278190080) div 16777216) and 255);
obwohl c ein Integer ist ? Nun gut sei's drum.. verstehe was du meinst der wert (4278190080) passt nicht in einen Integer.

gruss

Geändert von EWeiss (21. Mär 2019 um 11:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:48
4278190080 ist ein unsigned int, weil die Zahl zu groß ist für den Datentyp "Integer".
Wenn Buf[dx,dy] ein byte zurückgibt und du dann ein "and $FF000000" (4278190080) darauf anwendest, dann bringt dir das nichts.
Dann kannst du auch direkt "0" schreiben. Was genau hast du da vor?
Und wenn du mit Bitmasken/Bitoperationen arbeitest würde ich dir empfehlen die Hexadezimale Notation zu verwenden - die ist in dem Fall unendlich lesbarer.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: signed and unsigned types

  Alt 21. Mär 2019, 10:58
Zitat:
Und wenn du mit Bitmasken/Bitoperationen arbeitest würde ich dir empfehlen die Hexadezimale Notation zu verwenden - die ist in dem Fall unendlich lesbarer.
Hatte ich vorher.. habe es geändert um eine einheitliche Berechnung (Ansicht zu haben) durchzuführen kein Mischmasch zwischen DEZ und HEX.

Zitat:
4278190080 ist ein unsigned int, weil die Zahl zu groß ist für den Datentyp "Integer".
Habe es auf Int64 geändert so muss ich nicht konvertieren.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: signed and unsigned types

  Alt 21. Mär 2019, 11:38
Und nochmal:
Delphi-Quellcode:
// :
Buf[dx, dy] and 4278190080
Das ergibt IMMER 0 Sicher das du das willst?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz