搜索
您的当前位置:首页正文

利用进制转换压缩数字函数分享_javascript技巧

2023-12-04 来源:微柏美食网

代码如下:function zipNum(num, radix){ if(!zipNum.zip){ zipNum.zip = function(inputNum){ if(inputNum > 35){//用大写字母表示36-61 return String.fromCharCode('A'.charCodeAt(0) + inputNum % 36); } else if(inputNum > 9){//用小写字母表示10-35 return String.fromCharCode('a'.charCodeAt(0) + inputNum % 10); } else { return inputNum; } } } var quotient = num, remainder, result; if(radix > 36 && radix < 63){ result = []; do { remainder = quotient % radix; quotient = parseInt(quotient / radix); result.push(zipNum.zip(remainder)); }while(quotient > radix); remainder = quotient % radix; if(remainder !== 0){ result.push(zipNum.zip(remainder)); } result = result.reverse().join(''); } else if(radix > 1 && radix < 36){ result = num.toString(radix); } else { result = num; window.console && console.warn('radix argument must be between 2 and 62') } return result;}function testSortNum(){ assertEquals(zipNum(61, 62), 'Z'); assertEquals(zipNum(62 * 2 - 1, 62), '1Z'); assertEquals(zipNum(62 * 3 - 1, 62), '2Z'); assertEquals(zipNum(1361182624991, 62), 'dXN5fJB');}testSortNum();

小编还为您整理了以下内容,可能对您也有帮助:

JS数字计算、处理常用函数

1、数字转换

1、Number(object):把object转化为数字。如果参数是 Date 对象,Number() 返回从1970年1月1日至今的毫秒数。如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。

在JS里做加法运算的时候,运算结果总是会变成字符串拼接。这个函数就是用来解决这个问题的,例如:var c=Number(0)+Number(1);

推荐这样写。前提是,你得保证object可以转换为数字。

2、isNaN():判断参数是否是非数字,是数字返回false,不是数字返回true;但是参数是空字符串和全是空格的字符串时,返回结果也是false;

3、parseFloat():解析一个字符串参数,并返回一个浮点数。首先它会忽略字符串首尾的空格然后从字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。如果第一个字符串不是数字,则返回NaN;例如:parseFloat('    40.01abc   ');返回值为40.01、parseFloat('    a40.01bc   ');返回值为NaN,返回值不一定会以小数形式体现,例如:parseFloat('    40abc   ');返回值为40。

4、parseInt():将字符串参数作为有符号的十进制整数进行解析。(解析过程和parseFloat()类似,忽略首尾空格,从第一个字符开始解析……)如果有两个参数, 使用第二个参数该参数的进制,将字符串参数解析为有符号的整数。例如:parseInt("   9a ");返回值为9、parseInt("   11c  ",2);返回值为3,‘   11c  ’转化先为数字2进制的数字11,然后再转化为十进制,2进制的11对应的10进制数为3。

二、保留2为小数:

1、四舍五入

var num =2.446242342;num = num.toFixed(2);  // 输出结果为 2.45

2、不四舍五入

以下处理结果不会四舍五入。

第一种,先把小数变整数:

Math.floor(15.7784514000 * 100) / 100  // 输出结果为 15.77

第二种,当作字符串,使用正则匹配:

Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/));输出结果为 15.77。不能用于整数如 10 必须写为10.0000。如果是负数,请先转换为正数再计算,最后转回负数。

Math.floor()容易出现精度问题,例如:对小数 8.54 保留两位小数(虽然它已经保留了 2 位小数),Math.floor(8.54*100)/100;输出结果为 8.53, 注意是 8.53 而不是 8.54。所以这种函数慎用。

javascript如何输入一个十进制数,并将其转换成二进制数?

以下函数可以将十进制数转为二进制数:

#include <iostream>

#include <malloc.h>

 

#define MAX 33

 

using namespace std;

 

/* 十进制数转换为二进制数(字符串表示) */

char *decToBin(long num);

 

int main()

{

    long dec = 123456789;

 

    cout<<"10进制数:t"<<dec<<endl;

    cout<<"2进制数:t"<<decToBin(dec)<<endl;

 

    return 0;

}

 

/* 十进制数转换为二进制数(字符串表示) */

char *decToBin(long num)

{

    char *arr;

    char temp;

    int i, n;

 

    arr = (char *)malloc(sizeof(char) * MAX);

    n = 0;

    while(num > 0)

    {

        arr[n++] = num % 2 + '0';

        num /= 2;

    }

 

    for(i=0; i<n/2; i++)

    {

        temp = arr[i];

        arr[i] = arr[n-1-i];

        arr[n-1-i] = temp;

    }

    arr[n] = '0'; 

    return arr;

}

1、十进制数是指各位数字全部由小于10的数字(0..9)组成的数值,如123、45678等。二进制数是指各位数字全部由小于2的数字(0..1)组成的数值,如10、1011等。将十进制数转换为二进制数是将全部由小于10的数字组成的数值转换为全部由小于2的数字组成的数值,如十进制数100转换为二进制数为1100100。

2、将十进制数转换为二进制数的算法是采用辗转取余法,即将待转换数不断除2取余,记录余数,用新的商继续除2取余,直到该数为零。由于余数小于2,故所有余数组成的数值全部由0、1组成。再对这些余数进行逆置即可。

求将十进制数转为十六进制数的JS或PHP代码

JS十进制转其他进制代码如下var m = 10;document.write(m.toString(2) + "<br>"); // 显示为 1010 二进制document.write(m.toString(8) + "<br>"); // 显示为 12 8进制document.write(m.toString(10) + "<br>"); // 显示为 10 十进制document.write(m.toString(16) + "<br>"); // 显示为 a, 十六进制 php转换函数如下:bindec() — 二进制转换为十进制
decbin() — 十进制转换为二进制
dechex() — 十进制转换为十六进制
decoct() — 十进制转换为八进制
hexdec() — 十六进制转换为十进制
octdec() — 八进制转换为十进制
base_convert()– 在任意进制之间转换数字使用说明如下: 一,十进制(decimal system)转换函数说明
1,十进制转二进制 decbin() 函数,如下实例echo decbin(12); //输出 1100
echo decbin(26); //输出 11010
decbin
(PHP 3, PHP 4, PHP 5)
decbin -- 十进制转换为二进制
说明
string decbin ( int number )
返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。2,十进制转八进制 decoct() 函数echo decoct(15); //输出 17
echo decoct(264); //输出 410
decoct
(PHP 3, PHP 4, PHP 5)
decoct -- 十进制转换为八进制
说明
string decoct ( int number )
返回一字符串,包含有给定 number 参数的八进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "37777777777"。3,十进制转十六进制 dechex() 函数echo dechex(10); //输出 a
echo dechex(47); //输出 2f
dechex
(PHP 3, PHP 4, PHP 5)
dechex -- 十进制转换为十六进制
说明
string dechex ( int number )
返回一字符串,包含有给定 number 参数的十六进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "ffffffff"。二,二进制(binary system)转换函数说明
1,二进制转十六制进 bin2hex() 函数$binary = "11111001";
$hex = dechex(bindec($binary));
echo $hex;//输出f9
bin2hex
(PHP 3 >= 3.0.9, PHP 4, PHP 5)
bin2hex -- 将二进制数据转换成十六进制表示
说明
string bin2hex ( string str )
返回 ASCII 字符串,为参数 str 的十六进制表示。转换使用字节方式,高四位字节优先。2,二进制转十制进 bindec() 函数echo bindec(\\\'110011\\\'); //输出 51
echo bindec(\\\'000110011\\\'); //输出 51
echo bindec(\\\'111\\\'); //输出 7
bindec
(PHP 3, PHP 4, PHP 5)
bindec -- 二进制转换为十进制
说明
number bindec ( string binary_string )
返回 binary_string 参数所表示的二进制数的十进制等价值。
bindec() 将一个二进制数转换成 integer。可转换的最大的数为 31 位 1 或者说十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数值,这种情况下,它会返回 float 类型。三,八进制(octal system)转换函数说明
八进制转十进制 octdec() 函数echo octdec(\\\'77\\\'); //输出 63
echo octdec(decoct(45)); //输出 45
octdec
(PHP 3, PHP 4, PHP 5)
octdec -- 八进制转换为十进制
说明
number octdec ( string octal_string )
返回 octal_string 参数所表示的八进制数的十进制等值。可转换的最大的数值为 17777777777 或十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。四,十六进制(hexadecimal)转换函数说明
十六进制转十进制 hexdec()函数var_mp(hexdec("See"));
var_mp(hexdec("ee"));
// both print "int(238)"

var_mp(hexdec("that")); // print "int(10)"
var_mp(hexdec("a0")); // print "int(160)"
hexdec
(PHP 3, PHP 4, PHP 5)
hexdec -- 十六进制转换为十进制
说明
number hexdec ( string hex_string )
返回与 hex_string 参数所表示的十六进制数等值的的十进制数。hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。
hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。五,任意进制转换 base_convert() 函数$hexadecimal = \\\'A37334\\\';
echo base_convert($hexadecimal, 16, 2);//输出 101000110111001100110100
base_convert
(PHP 3 >= 3.0.6, PHP 4, PHP 5)base_convert -- 在任意进制之间转换数字
说明
string base_convert ( string number, int frombase, int tobase )
返回一字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。

求将十进制数转为十六进制数的JS或PHP代码

JS十进制转其他进制代码如下var m = 10;document.write(m.toString(2) + "<br>"); // 显示为 1010 二进制document.write(m.toString(8) + "<br>"); // 显示为 12 8进制document.write(m.toString(10) + "<br>"); // 显示为 10 十进制document.write(m.toString(16) + "<br>"); // 显示为 a, 十六进制 php转换函数如下:bindec() — 二进制转换为十进制
decbin() — 十进制转换为二进制
dechex() — 十进制转换为十六进制
decoct() — 十进制转换为八进制
hexdec() — 十六进制转换为十进制
octdec() — 八进制转换为十进制
base_convert()– 在任意进制之间转换数字使用说明如下: 一,十进制(decimal system)转换函数说明
1,十进制转二进制 decbin() 函数,如下实例echo decbin(12); //输出 1100
echo decbin(26); //输出 11010
decbin
(PHP 3, PHP 4, PHP 5)
decbin -- 十进制转换为二进制
说明
string decbin ( int number )
返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。2,十进制转八进制 decoct() 函数echo decoct(15); //输出 17
echo decoct(264); //输出 410
decoct
(PHP 3, PHP 4, PHP 5)
decoct -- 十进制转换为八进制
说明
string decoct ( int number )
返回一字符串,包含有给定 number 参数的八进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "37777777777"。3,十进制转十六进制 dechex() 函数echo dechex(10); //输出 a
echo dechex(47); //输出 2f
dechex
(PHP 3, PHP 4, PHP 5)
dechex -- 十进制转换为十六进制
说明
string dechex ( int number )
返回一字符串,包含有给定 number 参数的十六进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "ffffffff"。二,二进制(binary system)转换函数说明
1,二进制转十六制进 bin2hex() 函数$binary = "11111001";
$hex = dechex(bindec($binary));
echo $hex;//输出f9
bin2hex
(PHP 3 >= 3.0.9, PHP 4, PHP 5)
bin2hex -- 将二进制数据转换成十六进制表示
说明
string bin2hex ( string str )
返回 ASCII 字符串,为参数 str 的十六进制表示。转换使用字节方式,高四位字节优先。2,二进制转十制进 bindec() 函数echo bindec(\\\'110011\\\'); //输出 51
echo bindec(\\\'000110011\\\'); //输出 51
echo bindec(\\\'111\\\'); //输出 7
bindec
(PHP 3, PHP 4, PHP 5)
bindec -- 二进制转换为十进制
说明
number bindec ( string binary_string )
返回 binary_string 参数所表示的二进制数的十进制等价值。
bindec() 将一个二进制数转换成 integer。可转换的最大的数为 31 位 1 或者说十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数值,这种情况下,它会返回 float 类型。三,八进制(octal system)转换函数说明
八进制转十进制 octdec() 函数echo octdec(\\\'77\\\'); //输出 63
echo octdec(decoct(45)); //输出 45
octdec
(PHP 3, PHP 4, PHP 5)
octdec -- 八进制转换为十进制
说明
number octdec ( string octal_string )
返回 octal_string 参数所表示的八进制数的十进制等值。可转换的最大的数值为 17777777777 或十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。四,十六进制(hexadecimal)转换函数说明
十六进制转十进制 hexdec()函数var_mp(hexdec("See"));
var_mp(hexdec("ee"));
// both print "int(238)"

var_mp(hexdec("that")); // print "int(10)"
var_mp(hexdec("a0")); // print "int(160)"
hexdec
(PHP 3, PHP 4, PHP 5)
hexdec -- 十六进制转换为十进制
说明
number hexdec ( string hex_string )
返回与 hex_string 参数所表示的十六进制数等值的的十进制数。hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。
hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。五,任意进制转换 base_convert() 函数$hexadecimal = \\\'A37334\\\';
echo base_convert($hexadecimal, 16, 2);//输出 101000110111001100110100
base_convert
(PHP 3 >= 3.0.6, PHP 4, PHP 5)base_convert -- 在任意进制之间转换数字
说明
string base_convert ( string number, int frombase, int tobase )
返回一字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。

JavaScript如何将一个数字转化为2进制

//10进制转为16进制

(10).toString(16) // =>"a"

//8进制转为16进制

(012).toString(16) // =>"a"

//16进制转为10进制

(0x16).toString(10) // =>"22"

//16进制转为8进制

(0x16).toString(8) // =>"26"

//10进制转为2进制 //=>

(1111).toString(2) // => "10001010111"

//8进制转为2进制 //=>

(01111).toString(2) //=>"1001001001"

//16进制转为2进制 //=>

(0x16).toString(2) // => "10110"

//2进制到10进制;

parseInt(10,2) //=>2

//2进制到10进制;

parseInt(100,2) //=>4

//16进制到10进制

parseInt(12, 16) //=>18

//8进制到10进制

parseInt(12,8); //=>10

js怎样把10进制数转换成16进制数显示?

js把10进制转为16进制并显示:

定义一个转换函数:

var w=function(s){

document.write('<br>'+s)

};

转换方法:

w(parseInt(x,16));

比如传入15,打印出来的结果是:0xF。

微柏美食网还为您提供以下相关内容希望对您有帮助:

如何用javascript编写十进制转换为十六进制

function dec2hex( num ){ if( typeof num !== 'undefined' ){ return Number(num).toString( 16 ); }}

javascript如何输入一个十进制数,并将其转换成二进制数?

2、将十进制数转换为二进制数的算法是采用辗转取余法,即将待转换数不断除2取余,记录余数,用新的商继续除2取余,直到该数为零。由于余数小于2,故所有余数组成的数值全部由0、1组成。再对这些余数进行逆置即可。

Javascript中,把16进制转换为10精制的方法?

function cNum(){ var hex ="0123456789abcdef",num10,num16;num10=null;num16=document.getElementById("n16").value.toLowerCase();for(i=0;i&lt;num16.length;i++){ if(hex.indexOf(num16.charAt(i))==-1){ alert("格式不对");document.getElementById("n16").value="";document....

用JavaScript如何实现将人名转换为0~100间的数字

事实上,一个中文字对应3个十进制数(0-255);比如"中"字对应十进制数为(228,184,173)十六进制为(E4,B8,AD);要一个数字的话就把那个16进制转化为10进制的数就好了(比如"中"字14989485)这样的表示方法才唯一。我写了一个详细的html文件(含javascript),实现了你想要的功能,经过firfox3.03和IE7...

十六进制转十进制怎么转换?

解答过程如图所示:十六进制(简写为hex或下标16)在数学中为一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。

parseint是什么意思?

例如,在处理包含 0x 或者 0 开头的十六进制或者八进制数字时,parseInt 函数会自动将其转化为十进制的值。如果输入的字符串中包含非数字字符,parseInt 函数会返回数字开头的部分,并尝试进行类型转换;但如果整个字符串中没有任何数字开头,它会返回 NaN。可以说,parseInt 是 JavaScript 中一项非常有用...

rgb与16进制的转换,javascript

var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;/*RGB颜色转换为16进制*/String.prototype.colorHex = function(){ var that = this; if(/^(rgb|RGB)/.test(that)){ var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g,"").split(","); var strHex...

十六进制转十进制方法

2、十六进制编程函式:十进制转换为十六进制:十六进制数(String型)=Hex$(十进制);Javascript能以toString()函数来将十进制数字转为其他任意进制格式;Python调用Python内置int()函数把该字串转为数字。3、十六进制计算机领域的应用:十六进制在计算机领域应用普遍,常见的有html\css的颜色表、mac地址、...

javascript构造函数

全部由0到7的数字组成且以0开头的数字,js会自动按八进制进行处理,这样的话 010 由八进制转换为十进制就是 8 同理 0712 是 458 而 0719 则是 719 (因为9超过八进制的数字范围了,所以直接按十进制处理)

Top