[x] 3!:1 y |
Преобразовать в Машинное Представление.
В стандартном порядке (little endian), байты в слове упорядочены от наиболее значимого к менее значимому; в обратном порядке (big endian),
байты упорядочены от менее значимого к более значимому.
Например, 4-х байтовое целое 265358979 представляется как 0fd10e83 в
стандартном порядке и как 830ed10f в обратном порядке.
В PC используется обратный порядок (big endian).
В применении к массиву y , диада x 3!:1 y производит
его машинное представление в соответствии со значением атома x :
| x | длина слова | порядок байт |
| 0 | 32 бита | стандартный |
| 1 | 32 бита | обратный |
| 2 | 64 бита | стандартный |
| 3 | 64 бита | обратный |
В качестве значения аргумента x можно использовать 10 вместо 2 и 11 вместо 3 для совместимости с предыдущими версиями. Монада 3!:1 производит машинное представление для длины слова и упорядочения байт машины, на которой она выполняется.
Результат 3!:1 y или x 3!:1 y состоит
из следующих частей. Где mword (машинное слово) имеет длину 32 или 64 бита,
как определено параметром x или, если x опущен, машиной,
на которой выполняется программа.
флаг | 1 mword |
Первый байт кодирует одно из следующего:
e0 | | 32 бита, стандартный |
e1 | | 32 бита, обратный |
e2 | | 64 бита, стандартный |
e3 | | 64 бита, обратный |
|
тип | 1 mword | как в 3!:0 |
#элементов | 1 mword | */$y для плотного массива; 1 для разреженного |
ранг | 1 mword | #$y |
размерность | rank mwords | $y |
значение | ? mwords | элементы разобранного y |
Для элементов, представляющих собой упаковки, целые произвольной точности, рациональные и прореженные типы записываются смещения в байтах представлений соответствующих элементов.
См. 3!:3 ниже для примеров.
|
[x] 3!:3 y |
Шестнадцатеричное Представление. Как 3!:1 , но
результатом является текстовая матрица в шестнадцатеричном представлении.
Например под 32-битной Windows:
(3!:3 x) ; (3!:3 x,o.1) ; 2 (3!:3) x,o.1 [ x=: 1 2 3 0 _1
+--------+--------+----------------+
|e1000000|e1000000|e200000000000000|
|04000000|08000000|0000000000000008|
|05000000|06000000|0000000000000006|
|01000000|01000000|0000000000000001|
|05000000|06000000|0000000000000006|
|01000000|00000000|3ff0000000000000|
|02000000|0000f03f|4000000000000000|
|03000000|00000000|4008000000000000|
|00000000|00000040|0000000000000000|
|ffffffff|00000000|bff0000000000000|
| |00000840|400921fb54442d18|
| |00000000| |
| |00000000| |
| |00000000| |
| |0000f0bf| |
| |182d4454| |
| |fb210940| |
+--------+--------+----------------+
t=: 0 (3!:3) ;:'fourscore and ten years ago'
$t
43 8
12{.t
e0000000
00000020
00000005
00000001
00000005
00000028
00000048
00000060
00000078
00000094
e0000000
00000002
dfh=: 16 #. '0123456789abcdef' i. ] NB. из шестнадцатеричного
((i.#t) e. 0,4 %~ dfh (5+i.5){t) <;.1 t
+--------+--------+--------+--------+--------+--------+
|e0000000|e0000000|e0000000|e0000000|e0000000|e0000000|
|00000020|00000002|00000002|00000002|00000002|00000002|
|00000005|00000009|00000003|00000003|00000005|00000003|
|00000001|00000001|00000001|00000001|00000001|00000001|
|00000005|00000009|00000003|00000003|00000005|00000003|
|00000028|666f7572|616e6400|74656e00|79656172|61676f00|
|00000048|73636f72| | |73000000| |
|00000060|65000000| | | | |
|00000078| | | | | |
|00000094| | | | | |
+--------+--------+--------+--------+--------+--------+
|