JavaScript-小数转2/8/16 进制

小组事务管理 小组事务管理 主题:974 回复:1955

JavaScript-小数转2/8/16 进制

虐人心 发布于 2017-10-25 字数 72 浏览 1100 回复 2

求将小数转成 指定进制 编码的 函数,求 js,php,java,nodejs的不同版本

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

想挽留 2017-10-27 2 楼

想出js的了

function sysb(f,b){
v = parseFloat(f).toString(b)
console.log(v);
}

sysb(0.45,2);
sysb(0.45,8);
sysb(0.45,16);

甜柠檬 2017-10-26 1 楼

给你个PHP版本的吧:

<?php
function decto_bin($datalist,$bin) {
static $arr=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
if(!is_array($datalist)) $datalist=array($datalist);
if($bin==10)return $datalist; //相同进制忽略
$bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度
$aOutChar=array();
foreach ($datalist as $num){
$t="";
$num=intval($num);
if($num===0) continue;
while($num>0) {
$t=$arr[$num%$bin].$t;
$num=floor($num/$bin);
}
$tlen=strlen($t);
if($tlen%$bytelen!=0) {
$pad_len=$bytelen-$tlen%$bytelen;
$t=str_pad("",$pad_len,"0",STR_PAD_LEFT).$t; //不足一个字节长度,自动前面补充0
}
$aOutChar[]=$t;
}
return $aOutChar;
}

var_dump(decto_bin(array(64,300),2));
var_dump(decto_bin(array(64,300),8));
var_dump(decto_bin(array(64,300),16));
?>