Integer nur positiv?
Übersicht

![]() |
GockelBetreff: Integer nur positiv? |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Byte is unsigned und short doch auch oder nich? ![]() |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
IMurDOOM hat Folgendes geschrieben: Byte is unsigned und short doch auch oder nich?
![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group