HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0917
cats足した合計の数4解決


cats

リンク

2012/9/17(Mon) 18:17:14|NO.49415

ある数からA〜Zの複数を選択したいのですが
Aは1、Bは2、Cは4、Dは8・・・Yは16777216、Zは33554432
という風に倍になってA〜Zまで決まっているとします。
やりたいことは、例えば
ある数が17の場合A+E=17なのでAとEを取得して、
ある数が131の場合A+B+H=131なのでAとBとHを取得する
ということです。
調べようにもどう調べればよいのか分かりませんでした。
どなたか教えてください(><)



この記事に返信する


@key

リンク

2012/9/17(Mon) 18:28:31|NO.49416

17を2進数に変換すると、
10001   この場合1がAで10000がEです
131だと10000011でA、B、Hです

まあ参考にして下さい



@key

リンク

2012/9/17(Mon) 18:31:07|NO.49418

あと131の中にH(128)が入ってるか調べるには
論理演算子の&(AND)を使います
?&128で128になるなら入っている、0になるなら入っていません



cats

リンク

2012/9/17(Mon) 20:57:23|NO.49425

>@keyさん
ありがとうございます!
無事やりたいことができました。
一応スクリプトを書いておきます。

#module #defcfunc v10to2 int p if p=0:return "0" v="":a=p repeat if a=0:break x=a\2 v=""+x+v a=a/2 loop return v #global a=v10to2(33) mes "2進法 : "+a+"\n" inf=strlen(a) b="1" word="" repeat inf,1 poke word,0,cnt+64 if strmid(a,inf-cnt,1)="1":mes ""+word+"を含む":a=int(a)-int(b):a=str(a) b+="0" loop



cats

リンク

2012/9/17(Mon) 20:57:43|NO.49426

解決です。



ONION software Copyright 1997-2023(c) All rights reserved.