>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

Преобразования 3!:

3!:0 y Тип. Внутренний тип существительного y , кодированный следующим образом:
1 булевский
2 текстовый
4 целое
8 действительное
16 комплексное
32 упаковка
64 целое произв. точн.
128  рациональное
     
1024 разреженный булевский
2048 разреженный текстовый
4096 разреженный целый
8192 разреженный действительный
16384 разреженный комплексный
32768 разреженный упакованный
65536 символ
131072  Уникод (Unicode)
 
[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 ниже для примеров.

 
3!:2 y Преобразовать из Двоичного/Шестнадцатеричного Представления. Обратный глагол к 3!:1 и 3!:3 ; работает с аргументами любой длины слова и любого упорядочения байт. Если первый байт флагов (см. 3!:1 выше) не представляет собой e0 e1 e2 e3 , тогда преобразование производится в предположении, что данные записаны J версии до 6.01.

 
[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|        |        |        |        |        |
+--------+--------+--------+--------+--------+--------+
3!:4 y
3!:5 y
Преобразование между Целыми/Действительными. Если ic=: 3!:4 и fc=: 3!:5 , тогда

 3 ic y   целые языка J в наборы из 8-ми байт (только в J64)
_3 ic y наборы 8-ми байт в целые языка J (только в J64)
 2 ic y   целые языка J в наборы 4-х байт
_2 ic y наборы 4-х байт в целые J
 1 ic y целые J в наборы 2-х байт
_1 ic y наборы 2-х байт в целые J
 0 ic y наборы 2-х байт, интерпретируемые без знака в целые J
 
 2 fc y действительные J в машинные с плавающей точкой (double)
_2 fc y машинные с плавающей точкой (double) в действительные J
 1 fc y действительные J в машинные короткие с плавающей точкой (float)
_1 fc y машинные короткие с плавающей точкой (float) в действительные J

Все ранги равны бесконечности, обратные глаголы к k&ic и k&fc определены для всех k, кроме k=0.
 
3!:6 y Блокировать Сценарий. Кодирует текст сценария, превращая его в блокированный сценарий.



>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь