トップページ > プログラム > 2014年11月05日 > 9gbL5eJJ

書き込み順位&時間帯一覧

13 位/213 ID中時間01234567891011121314151617181920212223Total
書き込み数0100000000011100000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
くだすれPython(超初心者用) その24
VBScriptについて必死に話し合うスレ

書き込みレス一覧

くだすれPython(超初心者用) その24
939 :デフォルトの名無しさん[sage]:2014/11/05(水) 01:48:07.33 ID:9gbL5eJJ
ところで、共用体を使おうとするとクラッシュするんですが
ググっても全然出てこないし、使ってないんですかね。

構造体の場合
<Field type=c_ulong, ofs=0, size=4>
<Field type=c_float, ofs=4, size=4>
c_float 型に データ投入
<Field type=c_ulong, ofs=0, size=4>
0.5468

共用体の場合
<Field type=c_ulong, ofs=0, size=4>
<Field type=c_float, ofs=0, size=4>
c_float 型に データ投入
<Field type=c_ulong, ofs=0, size=4>
ここでクラッシュ

↓ここの浮動小数点を使う方法を試したかっただけですが。

ビットを数える・探すアルゴリズム
ttp://www.nminoru.jp/~nminoru/programming/bitcount.html
VBScriptについて必死に話し合うスレ
852 :デフォルトの名無しさん[sage]:2014/11/05(水) 11:11:47.93 ID:9gbL5eJJ
学校でC言語習った後にVB・・・3だったか、やった時の衝撃と同じようなもんか。
目の前のコード見てもさっぱり分からないけど、解説してもらって見えない部分が分かればすっきりする。
くだすれPython(超初心者用) その24
944 :デフォルトの名無しさん[sage]:2014/11/05(水) 12:01:37.33 ID:9gbL5eJJ
>>943
.asString() でキャストするのは ctypes では出来ないらしく
str()もcast()もクラッシュします。

コードはこんな感じ

from ctypes import *
#class utest(Structure):
class utest(Union):
pass

utest._fields_ = [("i", c_uint),
("f", c_float)]

print(utest.i)
print(utest.f)

#utest.f = 0.5468
utest.f = cast(0.5468,c_float)  ←これはミス
utest.i
print(utest.i)
#これ以降がクラッシュしたり
type(utest.f)
utest.f
print(str(utest.f))
print(cast(utest.f,c_float))
くだすれPython(超初心者用) その24
947 :デフォルトの名無しさん[sage]:2014/11/05(水) 13:15:47.45 ID:9gbL5eJJ
できました。感謝。なるほどなるほどー
基本を押さえてないのに共用体で検索してたから実際のコードがさっぱり出てこなくて。

x = utest(f=0.5468)
print(x)
print(x.i)
print(x.f)

<__main__.utest object at 0x02E88D50>
1057749782
0.5468000173568726


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。