• ベストアンサー

PHPでn進数処理

<?php $a = 2; //0010(2) $b = 7; //0111(2) $c = $a&$b; print("$a & $b = $c<br>"); //0010(2)と0111(2)の論理積 = 0010(2), 2(10) ?> 例えば上記のような処理で、$aと$bは10進数ですが、 値をセットさせる時点で2進数や16進数を利用する方法はあるのでしょうか? 宜しくご教示お願い致します。

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

8進数(先頭に0)と16進数(先頭に0x)ならあります $a = 0xff; //255 $b = 010; // 8 2進数は無かったと思います。

naktak
質問者

お礼

ヘルプを探してもどこに記されているのか分からなくて困ってました;; ありがとうございます^^

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPのstrcmp関数について

    PHPのstrcmp関数の動きがよくわかりません。 strcmp (PHP 4, PHP 5) strcmp — バイナリセーフな文字列比較 説明 int strcmp ( string $str1 , string $str2 ) この比較は大文字小文字を区別することに注意してください。 パラメータ str1 最初の文字列。 str2 次の文字列。 返り値 str1 が str2 よりも小さければ < 0 を、str1が str2よりも大きければ > 0 を、 等しければ 0 を返します。 ・・・・・・・・・とマニュアルには上記のようにあります。 聞きたい事!▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ 1 このstr1がstr2より大きいとはどういうことでしょうか? 2 実際に動きを確認するためにstrcmp関数を他のPHPのビルトイン関数で実現できないのでしょうか? 私の想像では、この関数にあたえる二つの引数を10進数に変換して、値の大きさを比較するという方法なのですが・・。 たとえば <?php $str01 = "a"; $str02 = "b"; print strcmp($str01,$str02); print "<br />"; //上記の値は-1がでるためこの場合 $aのほうが$bより小さいことになる。 //$aの値の文字aが小さいとは?どういうことか //私の、ぱっと思いついた方法は、以下のような意味? $str01 = bin2hex($str01); print $str01 ; //16進数でaという値を表すと61がでる print "<br />"; $str01 = hexdec($str01); print $str01; //10進数でaという値を表すと97がでる print "<br />"; //上記を同じく$bに行うと $str02 = bin2hex($str02); print $str02 ; //16進数でaという値を表すと62がでる print "<br />"; $str02 = hexdec($str02); print $str02; //10進数でaという値を表すと98がでる print "<br />"; print "<hr />"; /* 結果、$aは$bより 【小さい】という事なのでstrcmpは-1を返したと・・・。 こういう事をかんがえてみました。 そしてこれは、普通に考えれば a => bという順序なので アルファベット順になります。 しかしこのやり方だと */ $str03 = "aaaaaaa"; $str04 = "bb"; //と上記のような文字列があった場合同じく同じ手順で値をだすと $str03 = bin2hex($str03); print $str03 ; //16進数でaという値を表すと61616161616161がでる print "<br />"; $str03 = hexdec($str03); print $str03; //10進数でaという値を表すと27410143614427489がでる print "<br />"; //上記を同じく$bに行うと $str04 = bin2hex($str04); print $str04 ; //16進数でaという値を表すと6262がでる print "<br />"; $str04 = hexdec($str04); print $str04; //10進数でaという値を表すと25186がでる print "<br />"; /*ただ上記の方法だと、$str03と$str04を比較すると$str04の【bb】という値の方が 小さくなり順序的には bb => aaaaaaとなりアルファベット順にするとこができない。 三つ目の質問 3 アルファベット順にソートしたいとき標準のsort関数を使わずに他のPHPの標準関数の組み合わせでアルファベット順に並び替える 関数はつくれないのか? どなたか、ご意見お聞かせください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpとhtml間のデータ送信時「テキスト改行」処理について

    自分で調べてみましたが、どうしてもわからず行き詰まりました。 どなたかお知恵を貸して頂ければ幸いです。 【使用ファイル】 a.php php処理 b.html db抽出データ表示とフォーム(編集画面) c.html フォーム入力内容表示(確認画面) データ送信はPOSTとSmarty併用 dbへはMySQLで格納 【変数】 $z テキストエリアの項目値 【流れ】 a.php→b.html→a.php→c.html→a.php→b.html/dbへ格納 1:a.phpでdbよりデータ(テキスト)を抽出し追加、変数$zに格納。 2:Smartyでb.htmlへ$zを送る。送り先はフォーム内のテキストエリア値。 3:$zにテキスト追加で改行発生 (\n発生と予測)。 4:b.htmlからPOSTでa.phpへ。 nl2br($z)処理をし、<br />挿入。 5:Smartyでc.htmlへ$zを送る。 $zには<br>と\nの両方が入っている状態。改行表示される。ブラウザのページソースでは<br />が入っている。 6-1:c.html(POST)→a.php(smarty)→b.html str_replace("<br />,"","$z)で<br />を取り除き\nのみの状態 smartyでb.htmlへ 6-2:c.html(POST)→a.php→db格納  str_replace("<br />,"","$z)で<br />を取り除き\nのみの状態でdbへ格納 6-1,2とも<br />を入れたままだと文字列に<br />が入ってしまう 7:a.php→b.htmlで再度$zを呼び出してみると(1:の処理)<br />を取り除いたはずなのに、ブラウザではきちんと改行表示されている。 ブラウザのページソースに<br />の表示はない 【疑問点】 3:\nは発生してPOSTでa.phpにきているのか? きている種類が\nまたは他の改行文字かどうかを調べる手段はあるのか?バイナリ関連で調べるのか? 6-1:<br />を削除してhtmlへ送っているのに改行表示されるのか? <br />が文字列扱いになるのはなぜか? 6-2:dbでは\nが改行として認識されるのか? 7:\nしか入っていない文字列をブラウザ表示して、なぜ改行表示されるのか? 以上です。考えれば考える程にわからなくなってきました。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPの文法で悩んでいます。

    趣味でPHPの勉強をしているのですが、初歩的なことで躓きました。 <?PHP $a=100; $b=0x64; $c=0144; print $a."\n"; print $b."\n"; print $c."\n"; ?> このソースのprint $a."\n";の$aのあとのピリオドが何故必要なのでしょうか? 無かったら、プログラムが動きません… $aじゃ駄目なのは何故でしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP の自動で飛ぶ処理

    A.php ------------------------------------------------------------- ~省略~ print "<form action='./B.php' method='PSOT'>"; print "<input type='text' name='a_syori' value=''>"; print "<input type='submit' value='送信'>"; print "</form>"; -------------------------------------------------------------- B.php ~省略~ $b = $_POST['a_syori']; $b = $b * 2; -------------------------------------------------------------- B.phpでA.phpから送信された数値を2倍して すぐにまたA.phpに戻す という動作を行いたいのですが この場合、A.phpと同じ動作(formを作ってsubmitで送信)でしか A.phpには戻らないのでしょうか? 見た目ではB.phpでは表示させずにA.phpのみしか表示させたくありません。 今回はPHPで処理を行いたいと思っています。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPの問題

    下のプログラムご覧ください。 <HTML> <HEAD> <TITLE> 門題2</TITLE> </HEAD> <BODY> <?php $val1 = 90; $val2 = 30; $answer = 90 * 30; $answer1 = 90 / 30; $answer2 = 90 % 30; print "変数X1の初期値は$X1です。<BR>"; print "変数Y2の初期値は$Y2です。<BR>"; print "XとYの積は answerです。<BR>"; print "XとYの商は answer1です。<BR>"; print "XとYで割った剰除は answer2です。<BR>"; ?> </BODY> </HTML> 実行してみたもののエラーになりX1,Y2の所が出ていなくて 答えも出ませんなぜでしょうか? ご存知の方どうかお教えください。

    • ベストアンサー
    • PHP
  • 条件構文の基本的な扱いについて

    利用環境:php5:Winxp(sp2) ●以下のように二つの条件を満たしていたらの  処理をしたいのですが意図した結果が得られません。 <?php $a = 'aaa'; $b = 1; $bbb = 1; if (($a === 'aaa') and ($b === '$bbb')){ print('$aと$bは共に条件を満たしています。'.'<br />'); } else{ print('$aと$bは共に条件を満たしていません。'.'<br />'); } ?> ●意図する結果は、  $aと$bは共に条件を満たしています。  なのですが、うまく行きません。  原因と、Bestな書式を指導いただけないでしょうか。

    • ベストアンサー
    • PHP
  • PHP+MySQLで以下のような処理を作りたいのですが

    テーブルAに列Bがあり、 列Bは<自然数><区切記号>・・・<自然数><区切記号><自然数> という形のデータを持ちます。 列Bの各行に対してデータを<区切記号>でsplitして 得られる自然数の列をn(0),・・・n(k)とします。 * kの値(=自然数の個数)は行によって変わります (kは一定ではありません) テーブルAのレコードセットを order by n(0),・・・,n(k)で並び替えたいです。 このような処理をPHPコードで実装したいのですが どのようにしたらよいか考え方だけでも教えていただければ幸いです。

    • 締切済み
    • PHP
  • 最適な端数処理方法と処理位置を知りたい

    1から99,999,999,999までの整数Aと0.01から999,999.99までの小数Bがあり、A÷Bの商Cに再度Bを掛けて得られる積をAと同じ値にしたいです。A÷BとC×Bの算出時に四捨五入等・切り捨て・切り上げのいずれかの処理を行わなければならない場合、両式の小数点第何位でどの処理をすれば結果がAになるでしょうか。 よろしくお願いいたします。

  • PHP returnについて

    いつもお世話になっております。 PHPのreturn についてお伺いさせてください。 以下のように外部ファンクションを設けておりまして、本体から渡される値を、ファンクション側で計算させて、値を返す方法なのですが、どうもうまくいきません。 どこら辺が間違っているのでしょう? test_1.php ------------------------------------ require_once('test_2.php'); $a=0; $b=5; $c=5; $a = get_data(b,c); test_2.php ------------------------------------ function get_data($data1,$data2){ $data = $data1+$data2; return $data; } ------------------------------------ こんな感じで、本来であればtest_1.phpの$aにtest_2.phpの$dataの結果を渡したいのですが、どうもうまくいかないのです。 申し訳ありませんが、教えて頂けませんでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 3つの情報の論理積がわかりませんか?

    3つの情報の論理積がわかりませんか? データA(3586) データB (9549) データC (2952) AとBの論理積は105で BとCの論理積は73で CとAの論理積は206です。 この情報から3つのデータの論理積は出せるのでしょうか?

mfc-J6583cdwで着信音を消す方法
このQ&Aのポイント
  • mfc-J6583cdwを使っている方で着信音を消す方法を知りたいです。
  • ブラザー製品のmfc-J6583cdwで着信音を無音にする方法について教えてください。
  • mfc-J6583cdwの着信音をオフにする手順を教えてください。
回答を見る