论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

16进制\32进制\64进制相互转换

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:40:29


偶虽然没写注释,但相信大家都可以看出来思路很简单。
flash as3版:

  1. function convert(str, n1, n2)
  2. {
  3.     var arr_16 = ['0000', '0001', '0010', '0011',
  4.       '0100', '0101', '0110', '0111',
  5.       '1000', '1001', '1010', '1011',
  6.       '1100', '1101', '1110', '1111'];
  7.     var arr_32 = ['00000', '00001', '00010', '00011', '00100', '00101', '00110', '00111',
  8.       '01000', '01001', '01010', '01011', '01100', '01101', '01110', '01111',
  9.       '10000', '10001', '10010', '10011', '10100', '10101', '10110', '10111',
  10.       '11000', '11001', '11010', '11011', '11100', '11101', '11110', '11111'];
  11.     var arr_64 = ['000000', '000001', '000010', '000011', '000100', '000101', '000110', '000111', '001000', '001001', '001010', '001011', '001100', '001101', '001110', '001111',
  12.       '010000', '010001', '010010', '010011', '010100', '010101', '010110', '010111', '011000', '011001', '011010', '011011', '011100', '011101', '011110', '011111',
  13.       '100000', '100001', '100010', '100011', '100100', '100101', '100110', '100111', '101000', '101001', '101010', '101011', '101100', '101101', '101110', '101111',
  14.       '110000', '110001', '110010', '110011', '110100', '110101', '110110', '110111', '111000', '111001', '111010', '111011', '111100', '111101', '111110', '111111'];
  15.     var char_arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
  16.       'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
  17.       'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
  18.       'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '@'];
  19.  
  20.     var result_str = '';
  21.     var s = '', a = '';
  22.     var arr, b, arrt;
  23.     switch (n1) {
  24.         case 16 :
  25.             arr = arr_16;
  26.             break;
  27.         case 32 :
  28.             arr = arr_32;
  29.             break;
  30.         case 64 :
  31.             arr = arr_64;
  32.             break;
  33.     }
  34.     switch (n2) {
  35.         case 16 :
  36.             arrt = arr_16;
  37.             b = 4;
  38.             break;
  39.         case 32 :
  40.             arrt = arr_32;
  41.             b = 5;
  42.             break;
  43.         case 64 :
  44.             arrt = arr_64;
  45.             b = 6;
  46.             break;
  47.     }
  48.     for (var i = 0; i < str.length; i++) {
  49.         s += arr[char_arr.indexOf(str.charAt(i))];
  50.     }
  51.     for (i = 0; i < b - s.length % b; i++) {
  52.         a += '0';
  53.     }
  54.     s = a + s;
  55.     for (i = 0; i < s.length; i += b) {
  56.         result_str += char_arr[arrt.indexOf(s.substr(i, b))];
  57.     }
  58.     for(i = 0; i < result_str.length; i++){
  59.         if(result_str.charAt(i) != '0'){
  60.             return result_str.substring(i, result_str.length);
  61.         }
  62.     }
  63. }
  64. trace(convert('4a8b9dca84ecd3b35e681e6ea2fab3c5', 16, 64)); // 16进制 -> 64进制
  65. trace(convert('4a8b9dca84ecd3b35e681e6ea2fab3c5', 16, 32)); // 16进制 -> 32进制
  66. trace(convert('1ayVTaxePjIRVE7CWy!Hf5', 64, 16)); // 64进制 -> 16进制

php版:

  1. <?php
  2. function indexOf($arr, $e)
  3. {
  4.     for($i = 0; $i < count($arr); $i++){
  5.         if($arr[$i] == $e){
  6.             return $i;
  7.         }
  8.     }
  9. }
  10. function convert($str, $n1, $n2)
  11. {
  12.     $arr_16 = array('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');
  13.     $arr_32 = array('00000', '00001', '00010', '00011', '00100', '00101', '00110', '00111','01000', '01001', '01010', '01011', '01100', '01101', '01110', '01111','10000', '10001', '10010', '10011', '10100', '10101', '10110', '10111','11000', '11001', '11010', '11011', '11100', '11101', '11110', '11111');
  14.     $arr_64 = array('000000', '000001', '000010', '000011', '000100', '000101', '000110', '000111', '001000', '001001', '001010', '001011', '001100', '001101', '001110', '001111','010000', '010001', '010010', '010011', '010100', '010101', '010110', '010111', '011000', '011001', '011010', '011011', '011100', '011101', '011110', '011111','100000', '100001', '100010', '100011', '100100', '100101', '100110', '100111', '101000', '101001', '101010', '101011', '101100', '101101', '101110', '101111','110000', '110001', '110010', '110011', '110100', '110101', '110110', '110111', '111000', '111001', '111010', '111011', '111100', '111101', '111110', '111111');
  15.     $char_arr = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f','g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v','w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '@');
  16.     $result_str = '';
  17.     $s = '';
  18.     $a = '';
  19.     switch ($n1) {
  20.         case 16 :
  21.             $arr = $arr_16;
  22.             break;
  23.         case 32 :
  24.             $arr = $arr_32;
  25.             break;
  26.         case 64 :
  27.             $arr = $arr_64;
  28.             break;
  29.     }
  30.     switch ($n2) {
  31.         case 16 :
  32.             $arrt = $arr_16;
  33.             $b = 4;
  34.             break;
  35.         case 32 :
  36.             $arrt = $arr_32;
  37.             $b = 5;
  38.             break;
  39.         case 64 :
  40.             $arrt = $arr_64;
  41.             $b = 6;
  42.             break;
  43.     }
  44.     for ($i = 0; $i < strlen($str); $i++) {
  45.         $s .= $arr[indexOf($char_arr, $str[$i])];
  46.     }
  47.     for ($i = 0; $i < $b - strlen($s) % $b; $i++) {
  48.         $a .= '0';
  49.     }
  50.     $s = $a . $s;
  51.     for ($i = 0; $i < strlen($s); $i += $b) {
  52.         $result_str .= $char_arr[indexOf($arrt, substr($s, $i, $b))];
  53.     }
  54.     for($i = 0; $i < strlen($result_str); $i++){
  55.         if($result_str[$i] != '0'){
  56.             return substr($result_str, $i);
  57.         }
  58.     }
  59. }
  60. echo convert('4a8b9dca84ecd3b35e681e6ea2fab3c5', 16, 64) . "\n"; // 16进制 -> 64进制
  61. echo convert('4a8b9dca84ecd3b35e681e6ea2fab3c5', 16, 32) . "\n"; // 16进制 -> 32进制
  62. echo convert('1ayVTaxePjIRVE7CWy!Hf5', 64, 16); // 64进制 -> 16进制
  63. ?>
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058