- ベストアンサー
PHP進数の扱いについての質問
- PHPを勉強中の方が進数の扱いについて質問されています。
- 具体的には、10進数として表したい時にどうすればいいのか、また8進数表記を特定の値として扱いたい時にはどうすればいいのか問題が生じているようです。
- 質問者はこれからも同様の問題が生じる可能性があるため、アドバイスを求めています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>10進数の数字として扱う方法は別にないのでしょうか? ない >例えば「0123」の値を「123」として扱いたい!という時などが今後あるかもしれません そんな可能性はない 今回の命題は定義の問題なので、たとえば「+」という記号で減算したいのですが どうしたらいいの?レベルの質問です。 どうしてもというなら質問の中身にあるとおり文字列として処理するしかありません。 <?PHP $a = (int) "0123"; print $a; ?>
その他の回答 (2)
- agunuz
- ベストアンサー率65% (288/438)
>10進数として0123を表したい時にはどうしたらよいのでしょうか? ちょっと意図がわかりません。 $str = '0123'; であれば、intval($str) ですし、最初から10進と決まっているなら素直に $val = 123; と書けばいいだけです。 それとも $val = 0123; とした8進数(=83)を10進の123にしたいとうことですか? >例えば「0123」の値を「123」として扱いたい!という時などが今後あるかもしれませんので、 0123は8進表記というだけなので値として「0123」というわけではないので、意味がないと思うのですが(実際にはintegerで格納されているだけだし)。
お礼
>ちょっと意図がわかりません。 例えば、ユーザーに数字の入力を求めた場合、入力された値が「0123」だったとし、これを「123」として扱うにはどうするんだ?と思い質問しました。 そういえばGETやPOSTの値って全て文字列として扱っていましたね・・・。 >0123は8進表記というだけなので値として「0123」というわけではないので、意味がないと思うのですが 勉強になりました。 有難うございます。
- tomoac
- ベストアンサー率12% (21/168)
何進数でもメモリーには2進数で入っています。 それを8で割った余りが、1桁目です。割った商をさらに8で割ればその余りが2桁目。それを繰り返せばいいですね。
お礼
8進数の仕組みについてありがとうございました。 勉強になりました。
お礼
ズバッと回答いただきまして、有難うございます。 >今回の命題は定義の問題なので 考えがずれていましたね。勉強になりました。 有難うございました。