任何人都可以請告訴我下面顯示的以下聲明的用法。我是ada語言的初學者。我曾嘗試過互聯網,但那不夠清楚。在ada中使用mod運算符
type Unsigned_4 is mod 2 ** 4;
for Unsigned_4'Size use 4;
任何人都可以請告訴我下面顯示的以下聲明的用法。我是ada語言的初學者。我曾嘗試過互聯網,但那不夠清楚。在ada中使用mod運算符
type Unsigned_4 is mod 2 ** 4;
for Unsigned_4'Size use 4;
Unsigned_4
是一個 「模塊型」 採取值0,1,... 14,15和包裹輪。
U : Unsigned_4;
begin
U := Unsigned_4'Last; -- 15
U := U + 1; -- 0
你只需要4位實現的類型,所以沒關係指定它的大小(我認爲這可能是一個簡單的確認規範,因爲編譯器清楚地知道了;如果你希望將它放入3位,並說for Unsigned_4'Size use 3;
編譯器會告訴你,你錯了)。
大多數編譯器都希望至少在一個字節中存儲該類型的值,以便高效訪問。當您在打包記錄中使用該類型時,最小大小會自動進入(pragma Pack)。
「is mod」是Ada的說法,這是一個modular type。模塊化類型的工作方式有點類似於C:unsigned
類型:它們沒有負值,一旦達到最大可表示值,正常(非模塊化)整數在阿達,你會得到constraint_error