无符号 数 oracle,无符号整数 - Oracle® Developer Studio 12.5:Fortran 用户指南

4.5 无符号整数

Fortran 编译器接受新的数据类型 UNSIGNED 作为对该语言的一种扩展。UNSIGNED 接受四个 KIND 参数值: 1、2、4 和 8,分别对应于 1、2、4 和 8 字节无符号整数。

无符号整型常量的形式是:数字串后跟大写或小写字母 U,再后跟一个下划线和种类参数(可选)。下面的示例显示了无符号整型常量的最大值:255u_1

65535u_2

4294967295U_4

18446744073709551615U_8

如果没有使用种类参数 (12345U),则缺省值与缺省整数相同。缺省值为 U_4,但可以使用 -xtypemap 选项更改它,这会更改缺省无符号整数的种类类型。

可使用 UNSIGNED 类型说明符声明无符号整型变量或数组:UNSIGNED U

UNSIGNED(KIND=2) :: A

UNSIGNED*8 :: B

4.5.1 算术表达式二进制运算(如 + - * /)不能混合使用有符号操作数和无符号操作数。即,如果将 U 声明为 UNSIGNED 并且 N 是有符号的 INTEGER,则 U*N 是非法的。可使用 UNSIGNED 内部函数将二进制运算中的混合操作数组合起来,例如 U*UNSIGNED(N)。

有一种例外情况是,如果一个操作数是无符号整数,而另一个操作数是具有正值或零值的有符号整数常量表达式,则结果是无符号整数。

此类混合表达式的结果的类型,是操作数最常见的类型。

有符号值的幂是有符号的值;而无符号值的幂是无符号的值。

无符号值的一元负值是无符号的值。

无符号操作数可以与实数、复数操作数任意混合使用。(无符号操作数不能与区间操作数混合使用。)

4.5.2 关系表达式

可以使用内部关系运算来比较有符号和无符号整型操作数。其结果基于未修改的操作数的值。

4.5.3 控制构造CASE 构造接受无符号整数作为条件表达式。

不允许将无符号整数作为 DO 循环控制变量,也不允许在算术 IF 控制表达式中使用它。

4.5.4 输入/输出构造可以使用 I、B、O 和 Z 编辑描述符来读取和写入无符号整数。

还可以使用列表控制和名称列表 I/O 读取和写入无符号整数。无符号整数在列表控制或名称列表 I/O 下的写入格式与用于带符号正整数的格式相同。

也可以使用未格式化 I/O 读取或写入无符号整数。

4.5.5 内部函数允许在内部函数中使用无符号整数,但 SIGN 和 ABS 除外。

新的内部函数 UNSIGNED 与 INT 类似,但生成无符号类型的结果。格式为

UNSIGNED(v [,kind] )。

另一个新的内部函数 SELECTED_UNSIGNED_KIND( var) 返回 var 的种类参数。

内部函数不允许同时使用有符号整型操作数和无符号整型操作数,但 MAX 和 MIN 函数除外。仅当至少有一个 REAL 类型的操作数时,才允许这两个函数同时使用有符号整型操作数和无符号整型操作数。

无符号数组不能作为数组内部函数的参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值