mod算子在ada中的应用
有人能告诉我下面所示的声明的用法吗?我是ada语言的初学者。我试过上网,但还不够清楚mod算子在ada中的应用,ada,Ada,有人能告诉我下面所示的声明的用法吗?我是ada语言的初学者。我试过上网,但还不够清楚 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;
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位,并表示为无符号_4'大小,请使用3;编译器会告诉你你错了
大多数编译器都希望将该类型的值存储在至少一个字节中,以实现高效访问。当您在压缩记录pragma Pack中使用类型时,最小大小将自行确定。Unsigned_4是一种模块化类型,其值为0、1、。。14岁,15岁,和裹着一圈
U : Unsigned_4;
begin
U := Unsigned_4'Last; -- 15
U := U + 1; -- 0
实现这个类型只需要4位,所以可以指定它的大小,我认为这可能只是一个确认规范,因为编译器已经清楚地知道了这一点;如果您希望将其放入3位,并表示为无符号_4'大小,请使用3;编译器会告诉你你错了
大多数编译器都希望将该类型的值存储在至少一个字节中,以实现高效访问。当您在打包的记录pragma Pack中使用该类型时,最小大小会自行确定。is mod是Ada表示这是一个。模块化类型的工作方式有点像C中的无符号类型:它们没有负值,一旦达到最大的可表示值,如果添加一个值,将得到0
如果你在Ada中对一个普通的非模整数进行同样的尝试,你会得到constraint\u erroris mod是Ada说这是一个。模块化类型的工作方式有点像C中的无符号类型:它们没有负值,一旦达到最大的可表示值,如果添加一个值,将得到0 如果你在Ada中对一个普通的非模整数进行同样的尝试,你会得到constraint\u错误