Integer nur positiv?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Gockel

Betreff: Integer nur positiv?

BeitragDi, März 20, 2007 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Tach Leute! Habe mir mal ein Programm geschrieben, wie ich eine IP Nummer als Integerzahl anzeigen lassen kann. Allerdings ist der "IP-Integer" 32Bit und nur positiv. Bei BB kann ich allerdings nur von -... bis +..., also nur die Helfte (D.h., daß mein Programm bei zu hohem Wert einen Überlauf macht). Meine Frage nun: Wie kann ich einen Integer nun in der vollen Länge positiv anzeigen lassen? Wäre für jede Antwort dankbar!
 

Dreamora

BeitragDi, März 20, 2007 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Garnicht.
Blitz hat keine unsigned nummertypen.
Da müsstest du dir deine "Int" in einen String umwandeln und damit arbeiten.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Hummelpups

BeitragDi, März 20, 2007 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Byte is unsigned und short doch auch oder nich? Wink
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Vertex

BeitragDi, März 20, 2007 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Für was soll der Spaß denn sein? Sehe da keinen Sinn drin oO Ansonsten könntest du es dir mit Hex(IntIP) ausgeben lassen, da gibt es kein signed.
vertex.dreamfall.at | GitHub
 

Dreamora

BeitragDi, März 20, 2007 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
IMurDOOM hat Folgendes geschrieben:
Byte is unsigned und short doch auch oder nich? Wink


Jo ich geh von den Typen aus die man nutzt wenn man nicht das system ausbremsen will ^^ (Int und Float, denn alles andere muss aus diesen beiden extrahiert werden)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Hummelpups

BeitragDi, März 20, 2007 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst also das für einen Short trotzdem 4 Bytes allokiert werden?

...

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus
 

Dreamora

BeitragDi, März 20, 2007 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Jupp
Heutige CPU kennen nur 4 Byte. Sie allozieren nix drunter, meist unterstützen sie net ma mehr paddings und so um halbe ints für shorts zu nutzen und so.

sieht man am besten wenn man types baut.

int
byte
int

wird dennoch 12 byte brauchen weil das OS da keine spielereien erlaubt mit 9 byte und so quatsch
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Gockel

BeitragDo, März 22, 2007 9:35
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Vertex Meinst du alles in hex berechnen? Mit Integer komme ich ja wohl nicht weit so wie es aussieht. Da ich ja z.B. aus der IP 192.168.100.100 den Integerwert berechnen will (brauche ich für private Zwecke). Nur bekommt er schon mitten in der Berechnung einen Überlauf. D.h. die Zahl ergibt irgendwann -....

Vertex

BeitragDo, März 22, 2007 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß immer noch nicht, was du willst.

Integer besteht nun mal aus Byte Werten. Auch die IP-Adresse besteht aus Byte Werten. Das vom höchsten Byte bei Integer das höchste Bit für + oder - steht, kann dir völlig egal sein, die IP Adresse ändert sich damit nicht.

Nimm mal an, eine IP-Adresse würde nur 8 Bit belegen und Blitz hat nur als Datentyp signed Byte.
01111011 wäre Adresse a)
Blitz würde sie als +123 ausgeben.

11111011 wäre Adresse b)
Blitz würde sie als -5 ausgeben.
11111011 -> negatives Vorzeichen, 1111011 absoluter Wert ->
0000100 invertiert, + 1 = 0000101 2er Komplement -> -5

C mit unsigned Byte würde 251 ausgeben. Intern sind aber beide Adressen gleich.

Es ist also eine reine Interpretationsfrage.

Würde der Benutzer halt -5 eingeben, hätte er die selbe Adresse, wie in C, wenn er 251 eingetippt hätte. Es gibt keinen Verlust von Daten.

Und hier von Über- und Unterlauf zu sprechen ist verkehrt. IP-Adressen sind keine Zahlenwerte.

Und wegen Hex:
Hex habe ich nur erwähnt, weil es den selben String für signed und unsigned Integers ausspuckt.

mfg olli
vertex.dreamfall.at | GitHub

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group