LoginSignup
0
0

ORANGE pico の配列がメモリにどのように格納されているかを観察する

Posted at

ORANGE pico の配列のデータがメモリ上でどのように格納されているかを観察してみた。

これまでにわかっていること

以前の記事などで、以下のことがわかっている。

  • 変数名の20バイト前に、変数のデータが4バイトリトルエンディアンで格納されている。
  • 配列では同じ変数名が4個使われ、データのアドレスや要素数の情報が格納されている。
  • 配列の1要素には16ビット符号付き整数しか格納できない。
  • 3次元配列までは使えるが、4次元配列を作ろうとすると Syntax error になる。

プログラム

まず、観察用に1次元、2次元、3次元の配列をそれぞれ用意する。
要素数をそれぞれ変え、どの要素かがわかりやすいデータを格納する。

次に、もう1個配列を用意し、負の添字を使用して適当な量のダンプを行う。
今回は配列の観察のみが目的であるため、RAMの最初からダンプしなくてよい。
さらに、最初から CyberChef の To Hexdump の形式でUARTに出力するようにした。(改行コードはLF)

10 dim onedarray(7)
20 dim twodarray(6,5)
30 dim threedarray(4,3,2)
40 for i=0 to 7
50 onedarray(i) = &H1000 + i
60 next
70 for i=0 to 6
80 for j=0 to 5
90 twodarray(i,j) = &H2000 + &H10 * i + j
100 next
110 next
120 for i=0 to 4
130 for j=0 to 3
140 for k=0 to 2
150 threedarray(i,j,k) = &H3000 + &H100 * i + &H10 * j + k
160 next
170 next
180 next
190 size=2048:offset=0:dim checker(0)
200 for i=0 to size-1 step 16
210 uartput 1,format$("%08x  ", i)
220 for j=0 to 7
230 value=checker(-size/2+i/2+j-offset/2)
240 uartput 1,format$("%02x %02x ",value & &HFF, (value>>8) & &HFF)
250 next
260 uartput 1," |"
270 for j=0 to 15
280 value=(checker(-size/2+i/2+j/2-offset/2)>>((j%2)*8)) & &HFF
290 if &H20<=value && value<&H7F then uartput 1,chr$(value) else uartput 1,"."
300 next
310 uartput 1,"|"+chr$(&H0A)
320 next

実行結果

以下のダンプ結果が得られた。

ダンプ結果全体
00000000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00 18 d6 00 a0 01 00 00 00  |................|
00000050  50 00 00 00 06 00 00 00 20 d6 00 a0 00 00 00 00  |P....... .......|
00000060  60 d7 00 a0 01 00 00 00 00 00 00 00 00 00 00 00  |`...............|
00000070  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000080  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00 00 00 00 00 d0 dc 00 a0  |................|
000000d0  08 dd 00 a0 40 dd 00 a0 90 dd 00 a0 00 00 00 00  |....@...........|
000000e0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00 00 00 00 00 68 dd 00 a0  |............h...|
00000100  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 00 00 00 00 00 00 00 00 88 de 00 a0  |................|
00000160  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00 78 d7 00 a0 01 00 00 00  |........x.......|
000001b0  14 00 00 00 00 00 00 00 80 d7 00 a0 00 00 00 00  |................|
000001c0  d0 d7 00 a0 01 00 00 00 00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000200  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000210  00 00 00 00 00 00 00 00 e8 d7 00 a0 01 00 00 00  |................|
00000220  14 00 00 00 04 00 00 00 f0 d7 00 a0 00 00 00 00  |................|
00000230  40 d8 00 a0 01 00 00 00 00 00 00 00 d0 da 00 a0  |@...............|
00000240  c8 dd 00 a0 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000250  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000260  00 00 00 00 00 00 00 00 00 00 00 00 b0 d9 00 a0  |................|
00000270  00 00 00 00 00 00 00 00 00 00 00 00 10 dc 00 a0  |................|
00000280  00 00 00 00 00 00 00 00 58 d8 00 a0 01 00 00 00  |........X.......|
00000290  14 00 00 00 04 00 00 00 60 d8 00 a0 00 00 00 00  |........`.......|
000002a0  b0 d8 00 a0 01 00 00 00 00 00 00 00 00 db 00 a0  |................|
000002b0  f0 dd 00 a0 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000002c0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000002d0  00 00 00 00 00 00 00 00 00 00 00 00 e0 d9 00 a0  |................|
000002e0  00 00 00 00 00 00 00 00 00 00 00 00 40 dc 00 a0  |............@...|
000002f0  00 00 00 00 00 00 00 00 c8 d8 00 a0 01 00 00 00  |................|
00000300  14 00 00 00 04 00 00 00 d0 d8 00 a0 00 00 00 00  |................|
00000310  20 d9 00 a0 01 00 00 00 00 00 00 00 30 db 00 a0  | ...........0...|
00000320  18 de 00 a0 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000330  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000340  00 00 00 00 00 00 00 00 00 00 00 00 10 da 00 a0  |................|
00000350  00 00 00 00 00 00 00 00 00 00 00 00 70 dc 00 a0  |............p...|
00000360  00 00 00 00 00 00 00 00 38 d9 00 a0 01 00 00 00  |........8.......|
00000370  14 00 00 00 04 00 00 00 40 d9 00 a0 00 00 00 00  |........@.......|
00000380  90 d9 00 a0 01 00 00 00 00 00 00 00 60 db 00 a0  |............`...|
00000390  40 de 00 a0 00 00 00 00 00 00 00 00 00 00 00 00  |@...............|
000003a0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000003b0  00 00 00 00 00 00 00 00 00 00 00 00 40 da 00 a0  |............@...|
000003c0  00 00 00 00 00 00 00 00 00 00 00 00 a0 dc 00 a0  |................|
000003d0  00 00 00 00 00 00 00 00 a8 d9 00 a0 01 00 00 00  |................|
000003e0  00 10 01 10 02 10 03 10 04 10 05 10 06 10 07 10  |................|
000003f0  c0 d9 00 a0 01 00 00 00 c8 d9 00 a0 98 d9 00 a0  |................|
00000400  00 00 00 00 00 00 00 00 d8 d9 00 a0 01 00 00 00  |................|
00000410  6f 6e 65 64 61 72 72 61 79 00 00 a0 00 00 00 00  |onedarray.......|
00000420  f0 d9 00 a0 01 00 00 00 f8 d9 00 a0 08 00 00 00  |................|
00000430  00 00 00 00 00 00 00 00 08 da 00 a0 01 00 00 00  |................|
00000440  6f 6e 65 64 61 72 72 61 79 00 00 00 00 00 00 00  |onedarray.......|
00000450  20 da 00 a0 01 00 00 00 28 da 00 a0 00 00 00 00  | .......(.......|
00000460  00 00 00 00 00 00 00 00 38 da 00 a0 01 00 00 00  |........8.......|
00000470  6f 6e 65 64 61 72 72 61 79 00 00 00 00 00 00 00  |onedarray.......|
00000480  50 da 00 a0 01 00 00 00 58 da 00 a0 00 00 00 00  |P.......X.......|
00000490  00 00 00 00 00 00 00 00 68 da 00 a0 01 00 00 00  |........h.......|
000004a0  6f 6e 65 64 61 72 72 61 79 00 00 00 00 00 00 00  |onedarray.......|
000004b0  c8 da 00 a0 01 00 00 00 00 20 10 20 20 20 30 20  |......... .   0 |
000004c0  40 20 50 20 60 20 01 20 11 20 21 20 31 20 41 20  |@ P ` . . ! 1 A |
000004d0  51 20 61 20 02 20 12 20 22 20 32 20 42 20 52 20  |Q a . . " 2 B R |
000004e0  62 20 03 20 13 20 23 20 33 20 43 20 53 20 63 20  |b . . # 3 C S c |
000004f0  04 20 14 20 24 20 34 20 44 20 54 20 64 20 05 20  |. . $ 4 D T d . |
00000500  15 20 25 20 35 20 45 20 55 20 65 20 00 00 00 00  |. % 5 E U e ....|
00000510  e0 da 00 a0 01 00 00 00 e8 da 00 a0 70 da 00 a0  |............p...|
00000520  00 00 00 00 00 00 00 00 f8 da 00 a0 01 00 00 00  |................|
00000530  74 77 6f 64 61 72 72 61 79 00 00 00 00 00 00 00  |twodarray.......|
00000540  10 db 00 a0 01 00 00 00 18 db 00 a0 07 00 00 00  |................|
00000550  00 00 00 00 00 00 00 00 28 db 00 a0 01 00 00 00  |........(.......|
00000560  74 77 6f 64 61 72 72 61 79 00 00 00 00 00 00 00  |twodarray.......|
00000570  40 db 00 a0 01 00 00 00 48 db 00 a0 06 00 00 00  |@.......H.......|
00000580  00 00 00 00 00 00 00 00 58 db 00 a0 01 00 00 00  |........X.......|
00000590  74 77 6f 64 61 72 72 61 79 00 00 a0 00 00 00 00  |twodarray.......|
000005a0  70 db 00 a0 01 00 00 00 78 db 00 a0 00 00 00 00  |p.......x.......|
000005b0  00 00 00 00 00 00 00 00 88 db 00 a0 01 00 00 00  |................|
000005c0  74 77 6f 64 61 72 72 61 79 00 00 00 00 00 00 00  |twodarray.......|
000005d0  08 dc 00 a0 01 00 00 00 00 30 00 31 00 32 00 33  |.........0.1.2.3|
000005e0  00 34 10 30 10 31 10 32 10 33 10 34 20 30 20 31  |.4.0.1.2.3.4 0 1|
000005f0  20 32 20 33 20 34 30 30 30 31 30 32 30 33 30 34  | 2 3 40001020304|
00000600  01 30 01 31 01 32 01 33 01 34 11 30 11 31 11 32  |.0.1.2.3.4.0.1.2|
00000610  11 33 11 34 21 30 21 31 21 32 21 33 21 34 31 30  |.3.4!0!1!2!3!410|
00000620  31 31 31 32 31 33 31 34 02 30 02 31 02 32 02 33  |11121314.0.1.2.3|
00000630  02 34 12 30 12 31 12 32 12 33 12 34 22 30 22 31  |.4.0.1.2.3.4"0"1|
00000640  22 32 22 33 22 34 32 30 32 31 32 32 32 33 32 34  |"2"3"42021222324|
00000650  20 dc 00 a0 01 00 00 00 28 dc 00 a0 90 db 00 a0  | .......(.......|
00000660  00 00 00 00 00 00 00 00 38 dc 00 a0 01 00 00 00  |........8.......|
00000670  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
00000680  50 dc 00 a0 01 00 00 00 58 dc 00 a0 05 00 00 00  |P.......X.......|
00000690  00 00 00 00 00 00 00 00 68 dc 00 a0 01 00 00 00  |........h.......|
000006a0  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
000006b0  80 dc 00 a0 01 00 00 00 88 dc 00 a0 04 00 00 00  |................|
000006c0  00 00 00 00 00 00 00 00 98 dc 00 a0 01 00 00 00  |................|
000006d0  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
000006e0  b0 dc 00 a0 01 00 00 00 b8 dc 00 a0 03 00 00 00  |................|
000006f0  00 00 00 00 00 00 00 00 c8 dc 00 a0 01 00 00 00  |................|
00000700  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
00000710  e0 dc 00 a0 01 00 00 00 e8 dc 00 a0 10 07 00 00  |................|
00000720  00 00 00 00 00 00 00 00 f0 dc 00 a0 01 00 00 00  |................|
00000730  69 00 00 00 00 00 00 00 00 dd 00 a0 00 00 00 00  |i...............|
00000740  69 00 00 00 00 00 00 00 18 dd 00 a0 01 00 00 00  |i...............|
00000750  20 dd 00 a0 02 00 00 00 00 00 00 00 00 00 00 00  | ...............|
00000760  28 dd 00 a0 01 00 00 00 6a 00 00 00 00 00 00 00  |(.......j.......|
00000770  38 dd 00 a0 00 00 00 00 6b 00 00 00 00 00 00 00  |8.......k.......|
00000780  50 dd 00 a0 01 00 00 00 58 dd 00 a0 03 00 00 00  |P.......X.......|
00000790  00 00 00 00 00 00 00 00 60 dd 00 a0 01 00 00 00  |........`.......|
000007a0  6b 00 00 00 00 00 00 00 78 dd 00 a0 01 00 00 00  |k.......x.......|
000007b0  80 dd 00 a0 00 08 00 00 00 00 00 00 00 00 00 00  |................|
000007c0  88 dd 00 a0 01 00 00 00 73 69 7a 65 00 00 00 00  |........size....|
000007d0  a0 dd 00 a0 01 00 00 00 a8 dd 00 a0 00 00 00 00  |................|
000007e0  00 00 00 00 00 00 00 00 b0 dd 00 a0 01 dd 00 a0  |................|
000007f0  6f 66 66 73 65 74 00 00 c0 dd 00 a0 01 00 00 00  |offset..........|

配列の観察

1次元配列

000003e0  00 10 01 10 02 10 03 10 04 10 05 10 06 10 07 10  |................|
000003f0  c0 d9 00 a0 01 00 00 00 c8 d9 00 a0 98 d9 00 a0  |................|
00000400  00 00 00 00 00 00 00 00 d8 d9 00 a0 01 00 00 00  |................|
00000410  6f 6e 65 64 61 72 72 61 79 00 00 a0 00 00 00 00  |onedarray.......|
00000420  f0 d9 00 a0 01 00 00 00 f8 d9 00 a0 08 00 00 00  |................|
00000430  00 00 00 00 00 00 00 00 08 da 00 a0 01 00 00 00  |................|
00000440  6f 6e 65 64 61 72 72 61 79 00 00 00 00 00 00 00  |onedarray.......|
00000450  20 da 00 a0 01 00 00 00 28 da 00 a0 00 00 00 00  | .......(.......|
00000460  00 00 00 00 00 00 00 00 38 da 00 a0 01 00 00 00  |........8.......|
00000470  6f 6e 65 64 61 72 72 61 79 00 00 00 00 00 00 00  |onedarray.......|
00000480  50 da 00 a0 01 00 00 00 58 da 00 a0 00 00 00 00  |P.......X.......|
00000490  00 00 00 00 00 00 00 00 68 da 00 a0 01 00 00 00  |........h.......|
000004a0  6f 6e 65 64 61 72 72 61 79 00 00 00 00 00 00 00  |onedarray.......|
000004b0  c8 da 00 a0 01 00 00 00 00 20 10 20 20 20 30 20  |......... .   0 |

4個の変数名に対応するデータとして、順にデータのアドレス 0xa000d998、要素数 8、ゼロ、ゼロが格納されている。

配列のデータは、onedarray(0) から onedarray(7) が順に格納されている。

2次元配列

000004b0  c8 da 00 a0 01 00 00 00 00 20 10 20 20 20 30 20  |......... .   0 |
000004c0  40 20 50 20 60 20 01 20 11 20 21 20 31 20 41 20  |@ P ` . . ! 1 A |
000004d0  51 20 61 20 02 20 12 20 22 20 32 20 42 20 52 20  |Q a . . " 2 B R |
000004e0  62 20 03 20 13 20 23 20 33 20 43 20 53 20 63 20  |b . . # 3 C S c |
000004f0  04 20 14 20 24 20 34 20 44 20 54 20 64 20 05 20  |. . $ 4 D T d . |
00000500  15 20 25 20 35 20 45 20 55 20 65 20 00 00 00 00  |. % 5 E U e ....|
00000510  e0 da 00 a0 01 00 00 00 e8 da 00 a0 70 da 00 a0  |............p...|
00000520  00 00 00 00 00 00 00 00 f8 da 00 a0 01 00 00 00  |................|
00000530  74 77 6f 64 61 72 72 61 79 00 00 00 00 00 00 00  |twodarray.......|
00000540  10 db 00 a0 01 00 00 00 18 db 00 a0 07 00 00 00  |................|
00000550  00 00 00 00 00 00 00 00 28 db 00 a0 01 00 00 00  |........(.......|
00000560  74 77 6f 64 61 72 72 61 79 00 00 00 00 00 00 00  |twodarray.......|
00000570  40 db 00 a0 01 00 00 00 48 db 00 a0 06 00 00 00  |@.......H.......|
00000580  00 00 00 00 00 00 00 00 58 db 00 a0 01 00 00 00  |........X.......|
00000590  74 77 6f 64 61 72 72 61 79 00 00 a0 00 00 00 00  |twodarray.......|
000005a0  70 db 00 a0 01 00 00 00 78 db 00 a0 00 00 00 00  |p.......x.......|
000005b0  00 00 00 00 00 00 00 00 88 db 00 a0 01 00 00 00  |................|
000005c0  74 77 6f 64 61 72 72 61 79 00 00 00 00 00 00 00  |twodarray.......|
000005d0  08 dc 00 a0 01 00 00 00 00 30 00 31 00 32 00 33  |.........0.1.2.3|

4個の変数名に対応するデータとして、順にデータのアドレス 0xa000da70、最初の要素数 7、2番目の要素数 6、ゼロが格納されている。

配列のデータは、まず twodarray(0,0) から twodarray(6,0) が順に格納されている。
続いて twodarray(0,1) から twodarray(6,1) が順に格納されている。
その後も、同様に twodarray(i,5) までが順に格納されている。

3次元配列

000005d0  08 dc 00 a0 01 00 00 00 00 30 00 31 00 32 00 33  |.........0.1.2.3|
000005e0  00 34 10 30 10 31 10 32 10 33 10 34 20 30 20 31  |.4.0.1.2.3.4 0 1|
000005f0  20 32 20 33 20 34 30 30 30 31 30 32 30 33 30 34  | 2 3 40001020304|
00000600  01 30 01 31 01 32 01 33 01 34 11 30 11 31 11 32  |.0.1.2.3.4.0.1.2|
00000610  11 33 11 34 21 30 21 31 21 32 21 33 21 34 31 30  |.3.4!0!1!2!3!410|
00000620  31 31 31 32 31 33 31 34 02 30 02 31 02 32 02 33  |11121314.0.1.2.3|
00000630  02 34 12 30 12 31 12 32 12 33 12 34 22 30 22 31  |.4.0.1.2.3.4"0"1|
00000640  22 32 22 33 22 34 32 30 32 31 32 32 32 33 32 34  |"2"3"42021222324|
00000650  20 dc 00 a0 01 00 00 00 28 dc 00 a0 90 db 00 a0  | .......(.......|
00000660  00 00 00 00 00 00 00 00 38 dc 00 a0 01 00 00 00  |........8.......|
00000670  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
00000680  50 dc 00 a0 01 00 00 00 58 dc 00 a0 05 00 00 00  |P.......X.......|
00000690  00 00 00 00 00 00 00 00 68 dc 00 a0 01 00 00 00  |........h.......|
000006a0  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
000006b0  80 dc 00 a0 01 00 00 00 88 dc 00 a0 04 00 00 00  |................|
000006c0  00 00 00 00 00 00 00 00 98 dc 00 a0 01 00 00 00  |................|
000006d0  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
000006e0  b0 dc 00 a0 01 00 00 00 b8 dc 00 a0 03 00 00 00  |................|
000006f0  00 00 00 00 00 00 00 00 c8 dc 00 a0 01 00 00 00  |................|
00000700  74 68 72 65 65 64 61 72 72 61 79 00 00 00 00 00  |threedarray.....|
00000710  e0 dc 00 a0 01 00 00 00 e8 dc 00 a0 10 07 00 00  |................|

4個の変数名に対応するデータとして、順にデータのアドレス 0xa000db90、最初の要素数 5、2番目の要素数 4、3番目の要素数 3 が格納されている。

配列のデータは、まず threedarray(0,0,0) から threedarray(4,0,0) が順に格納されている。
続いて、threedarray(0,1,0) から threedarray(4,1,0) が順に格納されている。
さらに、threedarray(i,2,0) および threedarray(i,3,0) も同様に順に格納されている。
その後、threedarray(0,0,1) から threedarray(4,0,1) が順に格納され、続いて threedarray(i,1,1) から threedarray(i,3,1) も順に格納されている。
そして、続いて threedarray(i,j,2) が同様に格納されている。

まとめ

配列変数の情報は、配列の変数名4個を用い、順にデータの先頭アドレス、1番目の要素数、2番目の要素数、3番目の要素数を変数のデータとして格納する。
なお、要素数はそれぞれ dim で用いた値に1を足した値となっている。
要素数の枠は dim で指定する順に前から順に用いられ、3次元未満の配列で使わない要素数には 0 が入る。

配列のデータは1要素につき2バイト、リトルエンディアンで、同じ配列のデータはメモリ上に連続して格納される。
添字の小さいデータがメモリ上で先に、添字の大きいデータがメモリ上で後に格納される。
多次元 (2次元、3次元) 配列の場合、dim で後 (右) に指定する要素数は、「先 (左) に指定する要素数の配列」を要素とする配列の要素数として動作する。
すなわち、要素数 (dim で指定した値 + 1) が左から $a$、$b$ の2次元配列では、それぞれの添字を「1」変えると、メモリ上の位置はそれぞれ $2$ バイト、$2a$ バイト変化する。
要素数が左から $a$、$b$、$c$ の3次元配列では、それぞれの添字を「1」変えると、メモリ上の位置はそれぞれ $2$ バイト、$2a$ バイト、$2ab$ バイト変化する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0