Speicherbedarf Char

Getting started ... Alles für einen gelungenen Start.
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Speicherbedarf Char

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hallo,

ich wollte mal ganz kurz fragen, weil ich es nicht gefunden habe.

Weiß jemand wie groß der Speicherbedarf für ein Char ist?? In Java sind es ja 2 Byte. Wie ist es denn in ABAP?? Und wie hoch wäre er für ein integer?

Danke

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Speicherbedarf Char

Beitrag von edwin (Specialist / 300 / 9 / 68 ) »
Hi,

F1 im Abap Editor auf Type c, oder type i ... liefert dir die Antwort.

c: In Unicode-Systemen wird UTF-16 als System-Codepage verwendet und die Länge eines Zeichens ist zwei Byte.
i : 4-Byte-Integer
p : 1-16 Bytes
f : 8 Bytes
decfloat16 : 8 Bytes
decfloat34 : 16 Bytes

/Edwin

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Danke schon mal.

Ich habe gerade nachgeschaut. Wir haben kein Unicode-System und somit ist es nur 1 Byte.

Re: Speicherbedarf Char

Beitrag von edwin (Specialist / 300 / 9 / 68 ) »
du kannst auch das hier verwenden:

cl_abap_char_utilities=>charsize

das liefert dir die Länge eines Char

/Edwin

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Versteh ich das eigentlich dann so richtig, dass wenn ich wie folgt eine Variable oder ein Feld in einer internen Tabelle deklariere:

lv_var1(8) type c. <---- in diesem Fall verbraucht es 8 Byte in einem nicht Unicodefähigen System.

lv_var1(8) type d. <------ in diesem Fall verbraucht es 64 Byte, da Dats 8 Byte verbraucht.

Wäre das so richtig??

Re: Speicherbedarf Char

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
L0w-RiDer hat geschrieben:
15.10.2019 10:56
lv_var1(8) type d. <------ in diesem Fall verbraucht es 64 Byte, da Dats 8 Byte verbraucht.
Wäre das so richtig??
Ne, D(ats) braucht immer nur 8 Bytes. Die Längenangabe hier ist irreführend. Wenn man etwas anderes als 8 nimmt meckert der Kompiler. Ergo ist die Angabe optional und kann auch weggelassen werden, womit wir wieder bei den 8 Bytes wären.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
hmmm

und wenn ich einen Integer als Datentyp nehmen z.B.

lv_var1(40) type i. <--- dann wäre es auch nur 4 Byte, egal wie lang ich es mache??

Re: Speicherbedarf Char

Beitrag von schick (ForumUser / 52 / 5 / 15 ) »
L0w-RiDer hat geschrieben:
15.10.2019 11:33
hmmm

und wenn ich einen Integer als Datentyp nehmen z.B.

lv_var1(40) type i. <--- dann wäre es auch nur 4 Byte, egal wie lang ich es mache??
Da sollte folgende Meldung kommen: "Eine Längenangabe hat im Zusammenhang mit Typ 'I' keine Wirkung".

Integer ist in ABAP wie folgt ausgeprägt (siehe Doku: Eingebaute Typen):

i -2.147.483.648 bis +2.147.483.647
int8 -9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
es verbraucht somit immer 4 Byte, egal ob ich der Variabel den Wert 2 zuweise oder 2.000.000, oder?

Re: Speicherbedarf Char

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
L0w-RiDer hat geschrieben:
15.10.2019 13:01
es verbraucht somit immer 4 Byte, egal ob ich der Variabel den Wert 2 zuweise oder 2.000.000, oder?
Ja.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
L0w-RiDer

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Vielen Dank :).

Re: Speicherbedarf Char

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Ich glaube, es wurde hier noch nicht erwähnt. Du kannst ja so ganz einfach feststellen, wieviele Bytes ein Feld hat (auf deinem jeweiligen System, Unicode oder nicht):

Code: Alles auswählen.

  
  DATA char TYPE c LENGTH 3 VALUE 'abc'.
  DATA dats TYPE d VALUE '19851003'.
  DATA len TYPE i.

  DESCRIBE FIELD char LENGTH len IN BYTE MODE. 
  DESCRIBE FIELD dats LENGTH len IN BYTE MODE.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2717
Views
Konvertierug vom datentyp char der länge 4 in char der länge
von ratoshuan » 28.06.2006 11:33 • Verfasst in ABAP® Core
3
Antw.
2316
Views
char to int
von torsten hartmann » 18.07.2005 10:40 • Verfasst in ABAP® Core
4
Antw.
1309
Views
Typenkonvertierung CHAR => DEC
von swonny » 08.03.2021 17:42 • Verfasst in ABAP® für Anfänger
1
Antw.
2233
Views
CHAR -> QUAN
von marc schmidt » 21.09.2005 10:27 • Verfasst in ABAP® Core
4
Antw.
2340
Views
CHAR 1000
von eschi78 » 02.07.2008 13:55 • Verfasst in ABAP® Core

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.