ABAP基础篇2 数据类型
基本數據類型列表:
1.長度可變的內置類型(String、XString)
1)string類型
在ABAP程序中,string類型是長度無限的字符型字段,可以和CHAR ,D,T ,I,N (F和P未測試) 直接轉換,
但是有些字符串的操作語句可以使用CHAR 類型,不允許使用string 類型,比如:SHIFT
在系統內部,長度可變的內置類型(String、XString)是通過引用實際動態的數據對象的固定內存地址來進行操作,因而這兩種內置類型和引用類型一樣,屬于縱深類型。
2).xstring類型
由十六進制字符0-9, A-F組成字符串。直接打印輸出時,輸出的還是賦值時字面意義上的值,而不是Unicode解碼后的字符串
注:如果值是字母,則一定要大寫,否則賦值不進
DATA : xs TYPE xstring . xs = '303132'."表示字符串 012 WRITE :/ xs.
但輸出的還是303132
2.X類型
十六進制字符0-9, A-F具體的范圍為:00~FF
類型X是十六進制類型,可表示內存字節實際內容,使用兩個十六制字符表示一個字節中所存儲的內容。但直接打印輸出時,輸出的還是賦值時字面意義上的值,而不是Unicode解碼后的字符
如果未在DATA語句中指定參數<length>,則創建長度為1
注:如果值是字母,則一定要大寫,否則賦值不進
DATA: x2(2) TYPE x. x2 = '3AA'. WRITE : / x2.
輸出賦值時字面上的值:3AA0
補充說明:
16(十進制) = 10(十六進制) 十六進制(Hexadecimal)是計算機中數據常用的表示方法。一個十六進制數由0~9,A~F組成(不區分大小寫)。與十進制的對應關系為:0~9對應十進制的0~9;A~F對應十進制的10~15。十六進制“逢十六進一”
3.P類型(壓縮型)數據
是一種壓縮的定點數,其數據對象占據內存字節數和數值范圍取定義時指定的整個數據大小和小數點后位數,如果不指定小數位,則將視為I類型。其有效數字位大小可以是從1~31位數字(小數點與正負號占用一個位置,半個字節),小數點后最多允許14個數字。
P類型的數據,可用于精確運算(這里的精確指的是存儲中所存儲的數據與定義時字面上所看到的大小相同,而不存在精度丟失問題——看到的就是內存中實實在在的大小)。
在使用P類型時,要先選擇程序屬性中的選項Fixed point arithmetic(即定點算法,一般默認選中),否則系統將P類型看用整型。其效率低于I或F類型。
"16 * 2 = 32表示了整個字面意義上允許的最大字面個數,而14表示的是字面上小數點后面允許的最大小數位,而不是指14個字節,只有這里定義時的16才表示16個字節
DATA:p(16)TYPEpDECIMALS14VALUE'12345678901234567.89012345678901'.
"正負符號與小數點固定要占用半個字節,一個字面上位置,并包括在這16個字節里面。
"16 * 2 = 32位包括了小數點與在正負號在內
"在定義時字面上允許最長可以達到32位,除去小數點與符號需占半個字節以后
"有效數字位可允許31位,這31位中包括了整數位與小數位,再除去定義時小
"數位為14位外,整數位最多還可達到17位,所以下面最多只能是17個9
DATA:p1(16)TYPEpDECIMALS14VALUE'-99999999999999999'.
"P類型是以字符串來表示一個數的,與字符串不一樣的是,P類型中的每個數字位只會占用4Bit位,所以兩個數字位才會占用一個字節。另外,如果定義時沒有指定小數位,表示是整型,但小數點固定要占用半個字節,所以不帶小數位與符號的最大與最小整數如下(最多允許31個9,而不是32個)
DATA: p1(16)TYPEpVALUE'+9999999999999999999999999999999'.
DATA: p2(16)TYPEpVALUE'-9999999999999999999999999999999'.
其實P類型是以字符串形式來表示一個小數,這樣才可以作到精確,就像Java中要表示一個精確的小數要使用BigDecimal一樣,否則會丟失精度。
總結
以上是生活随笔為你收集整理的ABAP基础篇2 数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机系统结构总结_Scoreboard
- 下一篇: Cache 简介