Wertebereich eines Datentyps ausdrucken

Anfängerfragen zum Programmieren mit PureBasic.
mbergmann_sh
Beiträge: 8
Registriert: 04.08.2022 15:50

Wertebereich eines Datentyps ausdrucken

Beitrag von mbergmann_sh »

Unter C kann ich die untere und obere Grenze eines Datentyps ausgeben lassen:

Code: Alles auswählen

printf("int-Wert mindestens : %d\n", INT_MIN);
printf("int-Wert maximal    : %d\n", INT_MAX);
Definiert sind diese Werte als Konstanten in limits.h. Gibt es unter PureBasic ebenfalls einen Weg, um eine solche Ausgabe zu bewerkstelligen?
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Wertebereich eines Datentyps ausdrucken

Beitrag von mk-soft »

Nein.
Steht in der PB-Hilfe und ist Grundlagenwissen die man irgendwann in Kopf hat ;)

Update 3

Code: Alles auswählen


; Limits

#INT_MIN = -$80000000
#INT_MAX = $7FFFFFFF

CompilerSelect #PB_Compiler_Processor
  CompilerCase #PB_Processor_x86
    #INTEGER_MIN = -$80000000
    #INTEGER_MAX = $7FFFFFFF
  CompilerCase #PB_Processor_Arm32
    #INTEGER_MIN = -$80000000
    #INTEGER_MAX = $7FFFFFFF
  CompilerCase #PB_Processor_x64
    #INTEGER_MIN = -$8000000000000000
    #INTEGER_MAX = $7FFFFFFFFFFFFFFF
  CompilerCase #PB_Processor_Arm64
    #INTEGER_MIN = -$8000000000000000
    #INTEGER_MAX = $7FFFFFFFFFFFFFFF
CompilerEndSelect

#BYTE_MIN = -$80
#BYTE_MAX = $7F
#WORD_MIN = -$8000
#WORD_MAX = $7FFF
#LONG_MIN = -$80000000
#LONG_MAX = $7FFFFFFF
#QUAD_MIN = -$8000000000000000
#QUAD_MAX = $7FFFFFFFFFFFFFFF

#UNSIGNED_BYTE_MIN = $00
#UNSIGNED_BYTE_MAX = $FF

#UNSIGNED_WORD_MIN = $0000
#UNSIGNED_WORD_MAX = $FFFF

Debug #BYTE_MIN
Debug #BYTE_MAX
Debug #WORD_MIN
Debug #WORD_MAX
Debug #LONG_MIN
Debug #LONG_MAX
Debug #QUAD_MIN
Debug #QUAD_MAX

Zuletzt geändert von mk-soft am 29.01.2023 16:48, insgesamt 1-mal geändert.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wertebereich eines Datentyps ausdrucken

Beitrag von STARGÅTE »

Äm, da steht "IMT_MAX " statt INT.
Zum andere musst du bei Sache wie #WORD_MIN = $8000 ein Minus schreiben, sonst ist die Konstante (die ja kein Typ hat!) positiv.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
mbergmann_sh
Beiträge: 8
Registriert: 04.08.2022 15:50

Re: Wertebereich eines Datentyps ausdrucken

Beitrag von mbergmann_sh »

Super! Das hast jetzt aber Du selbst zusammengehackt, d.h. es ist nicht irgendwo in den PB-Includes vergraben?! Besten Dank dafür! :allright:
Mit dem Stichwort "Limits" wird mir in der Online-Hilfe zu 6.0LT übrigens nix angezeigt...
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Wertebereich eines Datentyps ausdrucken

Beitrag von mk-soft »

@STARGATE

hast recht. Somit gibt es weniger Probleme beim type casting. Update 3

@mbergmann_sh

siehe PB-Hilfe 'Variablen, Typen und Operatoren'
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Wertebereich eines Datentyps ausdrucken

Beitrag von Benubi »

Einen schönen Sonntag allerseits,

Das sind quasi "Low Level" Sachen aus C. Derartiges wird in der Hilfe nur selten (? gar nicht ?) angesprochen. Wenn Du als "forgeschrittener Programmierer" gillst, weißt Du vermutlich schon in welche .h Header Dateien Du nachschauen musst, oder wie solche Low Level Werte zu Stande kommen. Im /SDK/ Verzeichnis gibt es aber u.U. mehr Low Level Zeugs zu anschauen/ausprobieren. Aber das Backend und OS können sich ja ändern. PB ist eine Hochsprache mit einfachem Low Level Zugang. Glücklicherweise ist die C Syntax nah an PB, und es lassen sich viele Sachen einfach portieren.

Wenn Du in der Hilfe unter Primitiven Datentypen nachschaust stehen auch die minimal/maximal Wertebereiche. Variables, Types and Operators - in der Englischen Fassung (hat mk-soft auch schon geschrieben, wie ich feststelle).
Antworten