回答編集履歴
2
float to Int16
test
CHANGED
@@ -35,3 +35,31 @@
|
|
35
35
|
こうすれば±0x8000で表示されてバイナリデータっぽくなりますw
|
36
36
|
|
37
37
|
|
38
|
+
|
39
|
+
---
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
【追記されたInt16のデータについて】
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
-0.00427246 * 0x8000 = -139.99996928 ≒ -140 = -0x008c
|
50
|
+
|
51
|
+
-0.0166626 * 0x8000 = -546.0000768 ≒ -546 = -0x0222
|
52
|
+
|
53
|
+
-0.0283508 * 0x8000 = -928.9990144 ≒ -929 = -0x03a1
|
54
|
+
|
55
|
+
(以下略)
|
56
|
+
|
57
|
+
```
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
floatだろうがInt16だろうが、スケールが違うだけで同じ値なのですよ。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
1
0x
test
CHANGED
@@ -13,3 +13,25 @@
|
|
13
13
|
`floatChannelData`で取得しているようなのでfloat値になっているのでしょう。
|
14
14
|
|
15
15
|
`int16ChannelData`や`int32ChannelData`を使えば整数値で取得出来るような気がします。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
---
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
今のままでも、このfloat値が±1.0だと仮定すると、
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
```swift
|
28
|
+
|
29
|
+
print(String(Int(self.buffer[i][j] * 0x8000), radix: 16))
|
30
|
+
|
31
|
+
```
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
こうすれば±0x8000で表示されてバイナリデータっぽくなりますw
|
36
|
+
|
37
|
+
|