カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

PHPで10進数を2・8・16進数に変換

PHPで10進数から2・8・16進数へと、基数変換を行う方法をご紹介します。

まずは10進数で変換する値を宣言しておきます。

$dec = 500;

2進数に変換

書式:decbin(int $num): string

$bin = decbin($dec);
echo $bin;

出力結果は111110100となります。

8進数に変換

書式:decoct(int $num): string

$oct = decoct($dec);
echo $oct;

出力結果は764となります。

16進数に変換

書式:dechex(int $num): string

$hex = dechex($dec);
echo $hex;

出力結果は1f4となります。


今度は逆に変換してみましょう。

2進数から10進数に変換

書式:bindec(string $binary_string): int|float

$dec = bindec('111110100');
echo $dec; //500

続きを読む…»

530 views

MySQL TRUNCATE関数で小数点以下の値を切り捨てる

MySQLのTRUNCATE関数を使うと小数点以下を指定の桁数で切り捨てることができます。

  • 小数点以下をすべて切り捨て

    SELECT TRUNCATE(32.768, 0);
    

    出力結果は32となります。

  • 小数点以下を2位までとし、3位以下を切り捨て

    SELECT TRUNCATE(32.768, 2);
    

    出力結果は32.76となります。

  • 第2引数に負の値を渡すと、小数点左側を指定した桁数まで0にできます。

    SELECT TRUNCATE(32.768, -1);
    

    出力結果は30となります。

公式リファレンス:https://dev.mysql.com/doc/refman/5.6/ja/mathematical-functions.html#function_truncate

1,537 views

MySQLで10進数を2・8・16進数に変換

MySQLで基数変換を行う方法をご紹介します。

2進数に変換

SELECT BIN(500);

出力結果は111110100となります。

8進数に変換

SELECT OCT(500);

出力結果は764となります。

16進数に変換

SELECT HEX(500);

出力結果は1f4となります。

CONV関数

又、CONV関数を使っても変換することが可能です。
先ほどとは逆に2進数から10進数に変換する場合等もこちらを使用します。

書式:CONV(値, 変換元の基数, 変換先の基数)

例)500を10進数から2進数に変換

SELECT CONV(500, 10, 2);

公式リファレンス
BIN関数:https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_bin
OCT関数:https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_oct
HEX関数:https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_hex
CONV関数:https://dev.mysql.com/doc/refman/5.6/ja/mathematical-functions.html#function_conv

1,005 views

JavaScriptで10進数を2・8・16進数に変換

NumberオブジェクトのtoStringメソッドを使って、基数変換を行うことができます。

まずは10進数で変換する値を宣言しておきます。

const dec = 500;

2進数に変換

const bin = dec.toString(2);
console.log(bin);

出力結果は111110100となります。

8進数に変換

const oct = dec.toString(8);
console.log(oct);

出力結果は764となります。

16進数に変換

const hex = dec.toString(16);
console.log(hex);

出力結果は1f4となります。


今度は逆の変換をしていきましょう。
各進数を10進数に変換するときはparseInt()関数を使います。

書式:parseInt(string, radix)

第1引数は文字列です。数値を指定しても文字列に変換して処理されます。
第2引数は第1引数で指定した文字列の基数を指定します。(2 <= radix <= 36

出力結果は全て500となります。

2進数を10進数に変換

const dec = parseInt('111110100', 2);
console.log(dec);

続きを読む...»

812 views

MySQL IN句とFIND_IN_SET関数

MySQLの抽出条件の指定方法としてIN句とFIND_IN_SET関数というものがあります。
その具体的な使用方法をご紹介します。

サンプルとしてテーブル「sample」を用意します。

mysql> select * from `sample`;
+----+--------+------+
| id | name   | type |
+----+--------+------+
| 1  | 赤井   | 1    |
| 2  | 井田   | 2    |
| 3  | 宇野   | 3    |
| 4  | 江崎   | 1    |
| 5  | 奥本   | 2    |
+----+--------+------+

IN句

例えば、idが1・2・4のデータを取得したいとき、
IN句を使うとこのように抽出することができます。

SELECT * FROM sample WHERE id IN (1, 2, 4);

結果は以下のようになります。

+----+--------+------+
| id | name   | type |
+----+--------+------+
| 1  | 赤井   | 1    |
| 2  | 井田   | 2    |
| 4  | 江崎   | 1    |
+----+--------+------+

FIND_IN_SET関数

IN句のときと同様にidが1・2・4のデータを取得してみましょう。

SELECT * FROM sample WHERE FIND_IN_SET(id, '1,2,4');

こちらも結果はIN句を使ったときと同じ結果になります。

続きを読む…»

2,905 views