Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mod算子在ada中的应用_Ada - Fatal编程技术网

mod算子在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;

有人能告诉我下面所示的声明的用法吗?我是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;                -- 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 error

is mod是Ada说这是一个。模块化类型的工作方式有点像C中的无符号类型:它们没有负值,一旦达到最大的可表示值,如果添加一个值,将得到0

如果你在Ada中对一个普通的非模整数进行同样的尝试,你会得到constraint\u错误