• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP 進数の扱い)

PHP進数の扱いについての質問

このQ&Aのポイント
  • PHPを勉強中の方が進数の扱いについて質問されています。
  • 具体的には、10進数として表したい時にどうすればいいのか、また8進数表記を特定の値として扱いたい時にはどうすればいいのか問題が生じているようです。
  • 質問者はこれからも同様の問題が生じる可能性があるため、アドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>10進数の数字として扱う方法は別にないのでしょうか? ない >例えば「0123」の値を「123」として扱いたい!という時などが今後あるかもしれません そんな可能性はない 今回の命題は定義の問題なので、たとえば「+」という記号で減算したいのですが どうしたらいいの?レベルの質問です。 どうしてもというなら質問の中身にあるとおり文字列として処理するしかありません。 <?PHP $a = (int) "0123"; print $a; ?>

noname#245598
質問者

お礼

ズバッと回答いただきまして、有難うございます。 >今回の命題は定義の問題なので 考えがずれていましたね。勉強になりました。 有難うございました。

その他の回答 (2)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

>10進数として0123を表したい時にはどうしたらよいのでしょうか? ちょっと意図がわかりません。 $str = '0123'; であれば、intval($str) ですし、最初から10進と決まっているなら素直に $val = 123; と書けばいいだけです。 それとも $val = 0123; とした8進数(=83)を10進の123にしたいとうことですか? >例えば「0123」の値を「123」として扱いたい!という時などが今後あるかもしれませんので、 0123は8進表記というだけなので値として「0123」というわけではないので、意味がないと思うのですが(実際にはintegerで格納されているだけだし)。

noname#245598
質問者

お礼

>ちょっと意図がわかりません。 例えば、ユーザーに数字の入力を求めた場合、入力された値が「0123」だったとし、これを「123」として扱うにはどうするんだ?と思い質問しました。 そういえばGETやPOSTの値って全て文字列として扱っていましたね・・・。 >0123は8進表記というだけなので値として「0123」というわけではないので、意味がないと思うのですが 勉強になりました。 有難うございます。

  • tomoac
  • ベストアンサー率12% (21/168)
回答No.1

何進数でもメモリーには2進数で入っています。 それを8で割った余りが、1桁目です。割った商をさらに8で割ればその余りが2桁目。それを繰り返せばいいですね。

noname#245598
質問者

お礼

8進数の仕組みについてありがとうございました。 勉強になりました。

関連するQ&A

専門家に質問してみよう