【发布时间】:2015-05-06 17:16:41
【问题描述】:
我在 Fortran 中编写了一个例程来执行反向字节顺序。这将等同于src="1234"; dst="4321"。我想将例程更改为使用变量src 和dst 指定的任意排序来设置排序位置。
这是反向字节排序的代码。
Subroutine byteorder (src, dst, x, y)
Real, Intent (out) :: y
Character (Len=*), Intent (in) :: src, dst
Real, Intent (in) :: x
Integer :: i, j
i = Transfer (x, 0)
Call Mvbits (i, 24, 8, j, 0 )
Call Mvbits (i, 16, 8, j, 8 )
Call Mvbits (i, 8, 8, j, 16 )
Call Mvbits (i, 0, 8, j, 24 )
y = Transfer (j, 0.0)
End Subroutine byteorder
【问题讨论】:
-
您的问题是什么? dst 和 src 究竟应该是什么意思?
-
以上等价于
src="1234"; dst="4321"。我想让它适用于我提供的订单。例如src="1234"; dst="2143"。重要的是目标变量dst。 32 位实数有 4 个字节。dst说明了每个字节相对于输入的去向。 -
你需要它快吗?
-
我想它被称为排列,是的。
-
如果它很快但不是必需的会有所帮助。有哪些选择?
标签: fortran