ホームページ  >  記事  >  バックエンド開発  >  10進数と16進数の変換を実装するPHP関数

10進数と16進数の変換を実装するPHP関数

WBOY
WBOYオリジナル
2016-07-25 08:57:501045ブラウズ
  1. /**
  2. * 基数変換: 10 進数、16 進数変換
  3. * by bbs.it-home.org
  4. */
  5. $dic = array(
  6. 0 => '0', 1 => '1', 2 => '2', 3 => '3'、4 => '5'、7 => '8'、9 => ; '9'、
  7. 10 => 'B'、13 => 'E'、15 => 'F'、16 => 'H'、18 => 'J'、21 => ' L'、22 => 'N'、25 => 'P'、27 => 'R' 、 28 => 'S'、 29 => 'U'、 32 => 'X'、 34 => 'Y'、35 => 'Z' );
  8. //十进制转换三十六进制
  9. function enid($int, $format = 8) {
  10. global $dic;
  11. $arr = array();
  12. $loop = true;
  13. while ($loop)
  14. {
  15. $arr[] = $dic[bcmod($int, 36)];
  16. $int = Floor(bcdiv($int, 36));
  17. if ($int == 0) {
  18. $loop = false;
  19. }
  20. }
  21. array_pad($arr, $format, $dic[0]);
  22. return implode('', array_reverse($arr));
  23. }
  24. //三十六进制转换十进制
  25. function deid($id) {
  26. global $dic;
  27. // 键值交换
  28. $dedic = array_flip($dic);
  29. // 去零
  30. $id = ltrim($id, $dic[0]);
  31. // 反转
  32. $id = strrev($id);
  33. $v = 0;
  34. for($i = 0, $j = strlen($id); $i <$j; $i++)
  35. {
  36. $v = bcadd(bcmul($dedic[$id{$i}] , bcpow( 36、$i))、$v);
  37. }
  38. $v を返します。
  39. }
  40. // 遍历三位所有の三十六进制数
  41. $i = deid('ZZZ');
  42. $b = 配列();
  43. while ($i > 0) {
  44. $id_dym = str_pad(enid($i), 3, 0, STR_PAD_LEFT);
  45. echo strto lower($id_dym), '
    ';
  46. $i--;
  47. }
  48. 复制代
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。