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

使用JavaScript进行进制转换

2023-12-01 来源:欧尚宠物网

JS 是一个很神奇的语言,内制的的很多函数可以帮我们进行数(进)制转换;JS中可以直接使用16进制;

var a = 0xff; //255

将任意进制字符串转换为十进制,如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制;

parseInt("11", 2); // 3 2进制转10进制 parseInt("77", 8); // 63 8进制转10进制parseInt("af", 16); //175 16进制转10进制

将10进制转换为2进制,八进制,十六进制字符串Object.toString(n) : 即可 (n) 表示进制,如

(152).toString(2) // "10011000" ; 先用括号将152转换“包”成一个对象, 或者如下写法;152..toString(2) // 这里第一个点将152转换成float类型的小数,第二个点是引出对象方法;152..toString(16) // "98" : 十进制转16进制152..toString(32) // "4o" :十提制转32进制

同样Javascript支持最大进制是36 (26个英文字母 + 10个数字)

35..toString(36) // "z" : 支持最大编码"Z", 不区分大小写

如果在转换的过程中需要补齐的。可以使用下面的方式:

/** * @param num 需要补齐的16为数字 * @param len 要补齐到的位数 这里是 * @returns 补齐后的字符串 * */function format(num, len) {var l = num.length;if (num.length < len) {for (var i = 0; i < len - l; i++) {num = "0" + num;}}return num;}

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

如何用“javascript”或“jquery”实现图片与二进制的转换?

js是做不了文件和二进制的互相转换的,而且按照你的要求是存取数据库,js做不到的。

用别的方式(Java或者C#等等)去连接数据库,把图片文件作为blob对象(二进制大对象)类型存入数据库。

Javascript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直译语言。它已经由欧洲电脑制造商协会通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox等)支持。

JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。

JavaScript虽与Java有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。

javascript基本数据类型详解和如何进行转换操作


javascript中有5种基本数据类型:Undefined、Null、Boolean、Number、String。还有1种复杂数据类型—Object,Object实质上是由一组无序的名值对(键值对)组成的。javascript不支持任何创建自定义类型的机制。
由于javascript是松散型的,所以需要一种手段来检测变量的数据类型,typeof就是具有这种功能的操作符。用typeof检测变量可能返回以下某个字符串:
"undefined"变量未定义"boolean"变量是布尔值"string"变量是字符串"number"变量是数值"object"变量是对象或者null"function"变量是函数从技术的角度讲,函数是对象,不是一种数据类型。然而,函数有一些特殊的属性,因此通过typeof来区分函数和其它对象是有必要的。
Undefined类型只有一个值,就是特殊的undefined。在使用var声明变量但未初始化时,这个变量的值就是undefined,如:


不过,包含undefined值的变量和尚未定义的变量不一样,如:


然而对未声明或者声明没有初始化的变量使用typeof都会返回undefined,如:


Null类型也只有一个值,就是null。从逻辑的角度来看,null值表示一个空指针,所以用typeof检测null值会返回"object",如:


所以如果要定义变量来存放对象,最好将该变量初始化为null。实际上,undefined值是继承自null值的,所以判断它们的相等性会返回true:
alert(null == undefined); // true
尽管null和undefined有这样的关系,但它们用途是完全不同的,因为无论什么时候都没有必要把一个变量的值显示的设置为undefined,然而当定义一个还未保存对象的对象变量时,就应该将变量设置为null,这样不仅可以体现null作为空对象的指针,还有能很好地区分null和undefined。
Boolean类型有两个字面值:true和false,但是所有类型的值都能调用Boolean()函数转换成Boolean类型的值,下表列出了各种数据类型对应的转换规则:
数据类型转换为true的值转换为false的值BooleantruefalseString任何非空字符串""空字符串Number任何非零数字值0和NaNObject任何对象nullUndefined/undefinedNumber类型分为整数和浮点数,整数可以用十进制,八进制或十六进制表示,如:


但是八进制字面量在严格模式下是无效的,在进行算数计算时,所有的数值最终都会转换为十进制数值。浮点数值必须包含一个小数点,如:


浮点数值的最高精度是17位小数,但在进行算数计算时精确度远不如整数,例如:


NaN,即非数值,是一个特殊的Number值,NaN有两个特点:任何和NaN操作的结果都会返回NaN,NaN与任何值都不相等,包括NaN。使用isNaN()函数可以判断一个值是不是NaN,isNaN()在接收到一个参数时,会尝试将这个值转换为数值,任何不能转换为数值的值都会返回true,如:


isNaN()也能转换对象,对象调用isNaN()时,会首先调用对象的valueOf()方法,然后确定该方法的返回值是否可以转换为数值,如果不能,则用这个返回值再调用toString()方法,再测试返回值。
非数值转换成数值的方法有三个:Number()、parseInt()、parseFloat()。Number()可以转换任何数据类型的值,而parseInt()和parseFloat()只能转换字符串。
Number()函数有以下转换规则:
1.如果是Boolean值,true转换为1,false转换为0;


2.如果是Number值,就和传入的值一样;
var num = Number(1); //1
3.如果是null,转换为0;
var num = Number(null); //0
4.如果是undefined,转换为NaN;
var num = Number(undefined); //NaN
5.如果是String值,要分多种情况,如果是空字符串,则转换为0;如果是纯数字的字符串,则将其转换为相对应的数值,如果字符串是数字且包含".",则将其转换为对应的浮点数值(如果字符串最前面是0,会被忽略),如果字符串是有效的十六进制格式,会将其转换为对应的十进制数值;如果字符串包含上述格式之外的字符,则转换为NaN;如果字符串是对象,会首先调用对象的valueOf()方法,然后确定该方法的返回值是否可以转换为数值,如果结果是NaN,则调用toString()方法,再测试返回值。


由于Number()在转换字符串是比较复杂,所以转换字符串常用parseInt()和parseFloat()。这两个函数在转换字符串时,会检测该字符串是否符合数值模式,从第一个非空格字符开始解析,如果第一个字符不是数值或者负号,则返回NaN(包括空字符串)。如果第一个字符是字符串,则继续解析后面的字符,直到解析完所有的字符或者遇到非数字字符。
parseInt()能够识别各种整数格式(十进制、八进制、十六进制),如果字符串以"0x"开头且后跟数字字符,就会被解析为十六进制,如果以"0"开头且后跟数字字符,则会被解析为八进制(ECMAScript5不识别八进制,会将前面的0忽略,解析为十进制)。


为了解决兼容性问题,parseInt()提供第二个参数,以何种数值格式解析。


parseFloat()只识别第一个小数点,后面的小数点就无效了,同时parseFloat()只识别是十进制值,所以没有第二个参数,别的格式数值会被解析为0。


String类型值由若干个Unicode字符组成的字符序列构成,可以由单引号('')或者双引号("")表示,但是左右引号必须匹配。


将一个值显式转换为字符串有两种方法,toString()和String(),数值、布尔值、对象和字符串都有toString()方法和String()方法,而undefined和null只有String()方法,toString()的参数是转换的进制格式。

javascript基本数据类型详解和如何进行转换操作


javascript中有5种基本数据类型:Undefined、Null、Boolean、Number、String。还有1种复杂数据类型—Object,Object实质上是由一组无序的名值对(键值对)组成的。javascript不支持任何创建自定义类型的机制。
由于javascript是松散型的,所以需要一种手段来检测变量的数据类型,typeof就是具有这种功能的操作符。用typeof检测变量可能返回以下某个字符串:
"undefined"变量未定义"boolean"变量是布尔值"string"变量是字符串"number"变量是数值"object"变量是对象或者null"function"变量是函数从技术的角度讲,函数是对象,不是一种数据类型。然而,函数有一些特殊的属性,因此通过typeof来区分函数和其它对象是有必要的。
Undefined类型只有一个值,就是特殊的undefined。在使用var声明变量但未初始化时,这个变量的值就是undefined,如:


不过,包含undefined值的变量和尚未定义的变量不一样,如:


然而对未声明或者声明没有初始化的变量使用typeof都会返回undefined,如:


Null类型也只有一个值,就是null。从逻辑的角度来看,null值表示一个空指针,所以用typeof检测null值会返回"object",如:


所以如果要定义变量来存放对象,最好将该变量初始化为null。实际上,undefined值是继承自null值的,所以判断它们的相等性会返回true:
alert(null == undefined); // true
尽管null和undefined有这样的关系,但它们用途是完全不同的,因为无论什么时候都没有必要把一个变量的值显示的设置为undefined,然而当定义一个还未保存对象的对象变量时,就应该将变量设置为null,这样不仅可以体现null作为空对象的指针,还有能很好地区分null和undefined。
Boolean类型有两个字面值:true和false,但是所有类型的值都能调用Boolean()函数转换成Boolean类型的值,下表列出了各种数据类型对应的转换规则:
数据类型转换为true的值转换为false的值BooleantruefalseString任何非空字符串""空字符串Number任何非零数字值0和NaNObject任何对象nullUndefined/undefinedNumber类型分为整数和浮点数,整数可以用十进制,八进制或十六进制表示,如:


但是八进制字面量在严格模式下是无效的,在进行算数计算时,所有的数值最终都会转换为十进制数值。浮点数值必须包含一个小数点,如:


浮点数值的最高精度是17位小数,但在进行算数计算时精确度远不如整数,例如:


NaN,即非数值,是一个特殊的Number值,NaN有两个特点:任何和NaN操作的结果都会返回NaN,NaN与任何值都不相等,包括NaN。使用isNaN()函数可以判断一个值是不是NaN,isNaN()在接收到一个参数时,会尝试将这个值转换为数值,任何不能转换为数值的值都会返回true,如:


isNaN()也能转换对象,对象调用isNaN()时,会首先调用对象的valueOf()方法,然后确定该方法的返回值是否可以转换为数值,如果不能,则用这个返回值再调用toString()方法,再测试返回值。
非数值转换成数值的方法有三个:Number()、parseInt()、parseFloat()。Number()可以转换任何数据类型的值,而parseInt()和parseFloat()只能转换字符串。
Number()函数有以下转换规则:
1.如果是Boolean值,true转换为1,false转换为0;


2.如果是Number值,就和传入的值一样;
var num = Number(1); //1
3.如果是null,转换为0;
var num = Number(null); //0
4.如果是undefined,转换为NaN;
var num = Number(undefined); //NaN
5.如果是String值,要分多种情况,如果是空字符串,则转换为0;如果是纯数字的字符串,则将其转换为相对应的数值,如果字符串是数字且包含".",则将其转换为对应的浮点数值(如果字符串最前面是0,会被忽略),如果字符串是有效的十六进制格式,会将其转换为对应的十进制数值;如果字符串包含上述格式之外的字符,则转换为NaN;如果字符串是对象,会首先调用对象的valueOf()方法,然后确定该方法的返回值是否可以转换为数值,如果结果是NaN,则调用toString()方法,再测试返回值。


由于Number()在转换字符串是比较复杂,所以转换字符串常用parseInt()和parseFloat()。这两个函数在转换字符串时,会检测该字符串是否符合数值模式,从第一个非空格字符开始解析,如果第一个字符不是数值或者负号,则返回NaN(包括空字符串)。如果第一个字符是字符串,则继续解析后面的字符,直到解析完所有的字符或者遇到非数字字符。
parseInt()能够识别各种整数格式(十进制、八进制、十六进制),如果字符串以"0x"开头且后跟数字字符,就会被解析为十六进制,如果以"0"开头且后跟数字字符,则会被解析为八进制(ECMAScript5不识别八进制,会将前面的0忽略,解析为十进制)。


为了解决兼容性问题,parseInt()提供第二个参数,以何种数值格式解析。


parseFloat()只识别第一个小数点,后面的小数点就无效了,同时parseFloat()只识别是十进制值,所以没有第二个参数,别的格式数值会被解析为0。


String类型值由若干个Unicode字符组成的字符序列构成,可以由单引号('')或者双引号("")表示,但是左右引号必须匹配。


将一个值显式转换为字符串有两种方法,toString()和String(),数值、布尔值、对象和字符串都有toString()方法和String()方法,而undefined和null只有String()方法,toString()的参数是转换的进制格式。

js实现16进制转换为Base64

新建文件 HexToBase64.js ,内容如下:

使用 import ... form ...

JS有没有将数字转成二进制的方法

将十进制转为二进制:
var a = 10;
var b = a.toString(2);
b即为10的二进制表示。但是注意b此时是字符串。
toString()默认参数为10,即把数字转换为十进制字符串,可接受2-36整数作为参数。
将二进制转为十进制:
var a = "10100110";

var b = a.parseInt(a, 2);
b即为a的十进制表示。
parseInt将字符串转换为数字,接受两个参数,第一个是要转换的字符串,第二个可省略,表示要解析的数字基数,可接受2-36整数作为参数。默认情况下会自动判断:若字符串以0x开头,则之后的字符以十六进制解析;以0开头,以八进制解析,0-9,以十进制解析。

JS有没有将数字转成二进制的方法

将十进制转为二进制:
var a = 10;
var b = a.toString(2);
b即为10的二进制表示。但是注意b此时是字符串。
toString()默认参数为10,即把数字转换为十进制字符串,可接受2-36整数作为参数。
将二进制转为十进制:
var a = "10100110";

var b = a.parseInt(a, 2);
b即为a的十进制表示。
parseInt将字符串转换为数字,接受两个参数,第一个是要转换的字符串,第二个可省略,表示要解析的数字基数,可接受2-36整数作为参数。默认情况下会自动判断:若字符串以0x开头,则之后的字符以十六进制解析;以0开头,以八进制解析,0-9,以十进制解析。

javascript输入一个十进制数,将其转换成二进制数。

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

function Dec2Bin(num){

    var num = + num;

    return num.toString(2);

}

解释:

var num = + num;为隐式类型转换,将num转为Number类型

num.toString(2);将Number类型转为字符串,参数2表示转为二进制的字符串

求将十进制数转为十六进制数的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。

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

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

定义一个转换函数:

var w=function(s){

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

};

转换方法:

w(parseInt(x,16));

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

js怎么将16进制字符串转换成相应的16进制数

主要有两个方法,其实都是对现有函数的使用:
  
  方法1: sscanf()
  
  函数名: sscanf
  功 能: 从字符串格式化输入
  用 法: int sscanf(char *string, char *format[,argument,...]);
  
  以上的 format 为 %x 就是将字符串格式化为 16 进制数
  
  例子:
  
  #include <stdio.h>
  void main()
  {
  char* p = "0x1a";
  int nValude = 0;
  sscanf(p, "%x", &nValude);
  printf("%d\r\n", nValude);
  }

  输出:
  26

  
  方法2: strtol()
  
  函数名: strtol
  功 能: 将字符串转换为长整数
  用 法: long strtol(char *str, char **endptr, int base);
  
  上面的base就是我们要转换为几进制数
  例子:
  
  #include <stdio.h>
  #include <stdlib.h>
  void main()
  {
  char* p = "0x1b";
  char* str;
  long i = strtol(p, &str, 16);
  printf("%d\r\n", i);
  }
  
  输出:
  27
  
  其实还有一种方法,就是用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值,但这种发发太麻烦了,不推荐使用。

js怎么将16进制字符串转换成相应的16进制数

主要有两个方法,其实都是对现有函数的使用:
  
  方法1: sscanf()
  
  函数名: sscanf
  功 能: 从字符串格式化输入
  用 法: int sscanf(char *string, char *format[,argument,...]);
  
  以上的 format 为 %x 就是将字符串格式化为 16 进制数
  
  例子:
  
  #include <stdio.h>
  void main()
  {
  char* p = "0x1a";
  int nValude = 0;
  sscanf(p, "%x", &nValude);
  printf("%d\r\n", nValude);
  }

  输出:
  26

  
  方法2: strtol()
  
  函数名: strtol
  功 能: 将字符串转换为长整数
  用 法: long strtol(char *str, char **endptr, int base);
  
  上面的base就是我们要转换为几进制数
  例子:
  
  #include <stdio.h>
  #include <stdlib.h>
  void main()
  {
  char* p = "0x1b";
  char* str;
  long i = strtol(p, &str, 16);
  printf("%d\r\n", i);
  }
  
  输出:
  27
  
  其实还有一种方法,就是用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值,但这种发发太麻烦了,不推荐使用。

用JavaScript实现:输入任意的进制n和数字d,将其转换为10进制输出.

function test(n,d){

if(isNaN(n)){

return "n必须是数字!";

}

/*只考虑数字的情况.因为n可以是随便的数字.

如果说n=16那就16进制可以用上ABCDEF

那么如果输入100 你要用什么符号?

所有只考虑数字的情况.输入的必须是数字.省的麻烦.

还有小数之类的这里就不处理了*/

if(isNaN(d)){

return "d必须是数字!";

}

var src = (d + "").split("");

var res = 0;

for(i=0;i<src.length;i++){

if(src[i]>=n){

return d + "不是 "+n+" 进制数";

}

res += Math.pow(n,(src.length-1-i))*src[i];

}

return res;

}

alert(test(2,101));// 提示 5

alert(test(2,102));//提示 102 不是 2 进制数追问可不可以给出全部代码,因为我自己在弄的时候不行啊,麻烦啦。

追答函数已经给你了,你只要

var n = 16;//进制

var d = 10;//数

var r = test(n,d);// r 就是输出的十进制啊

javascript十六进制转十进制,请大神看看哪里错了

首先,switch语句用错了,每一个case都要以break结束(除非特殊需要),否则,满足case:"a"后,后面的case也会继续执行,直到遇到break。
其次,算法设计问题,进制转换,从高位开始计算需要得到对应的(幂值):
比如:aaaa = 16的3次方 x 10 + 16的2次方 x 10 + 16的1次方 x 10 + 16的0次方 x 10;
如下根据你的代码改过,可以参考。
function HexToDec(inStr) {
var FormatStr = inStr.toLowerCase();
var strLen = FormatStr.length;
var index = 0; //从最低位取值
var HexBit = 1; //index对应进制值
var HTDSult = 0;
while (index < strLen) {
switch (FormatStr.substr(strLen-index -1, 1)) {
case "0":
HTDSult = HTDSult + Math.pow(16, index) * 0;
break;
case "1":
HTDSult = HTDSult + Math.pow(16, index) * 1;
break;
case "2":
HTDSult = HTDSult + Math.pow(16, index) * 2;
break;
case "3":
HTDSult = HTDSult + Math.pow(16, index) * 3;
break;
case "4":
HTDSult = HTDSult + Math.pow(16, index) * 4;
break;
case "5":
HTDSult = HTDSult + Math.pow(16, index) * 5;
break;
case "6":
HTDSult = HTDSult + Math.pow(16, index) * 6;
break;
case "7":
HTDSult = HTDSult + Math.pow(16, index) * 7;
break;
case "8":
HTDSult = HTDSult + Math.pow(16, index) * 8;
break;
case "9":
HTDSult = HTDSult + Math.pow(16, index) * 9;
break;
case "a":
HTDSult = HTDSult + Math.pow(16, index) * 10;
break;
case "b":
HTDSult = HTDSult + Math.pow(16, index) * 11;
break;
case "c":
HTDSult = HTDSult + Math.pow(16, index) * 12;
break;
case "d":
HTDSult = HTDSult + Math.pow(16, index - 1) * 13;
break;
case "e":
HTDSult = HTDSult + Math.pow(16, index - 1) * 14;
break;
case "f":
HTDSult = HTDSult + Math.pow(16, index - 1) * 15;
break;
}
index++;
}
return HTDSult;
}

javascript十六进制转十进制,请大神看看哪里错了

首先,switch语句用错了,每一个case都要以break结束(除非特殊需要),否则,满足case:"a"后,后面的case也会继续执行,直到遇到break。
其次,算法设计问题,进制转换,从高位开始计算需要得到对应的(幂值):
比如:aaaa = 16的3次方 x 10 + 16的2次方 x 10 + 16的1次方 x 10 + 16的0次方 x 10;
如下根据你的代码改过,可以参考。
function HexToDec(inStr) {
var FormatStr = inStr.toLowerCase();
var strLen = FormatStr.length;
var index = 0; //从最低位取值
var HexBit = 1; //index对应进制值
var HTDSult = 0;
while (index < strLen) {
switch (FormatStr.substr(strLen-index -1, 1)) {
case "0":
HTDSult = HTDSult + Math.pow(16, index) * 0;
break;
case "1":
HTDSult = HTDSult + Math.pow(16, index) * 1;
break;
case "2":
HTDSult = HTDSult + Math.pow(16, index) * 2;
break;
case "3":
HTDSult = HTDSult + Math.pow(16, index) * 3;
break;
case "4":
HTDSult = HTDSult + Math.pow(16, index) * 4;
break;
case "5":
HTDSult = HTDSult + Math.pow(16, index) * 5;
break;
case "6":
HTDSult = HTDSult + Math.pow(16, index) * 6;
break;
case "7":
HTDSult = HTDSult + Math.pow(16, index) * 7;
break;
case "8":
HTDSult = HTDSult + Math.pow(16, index) * 8;
break;
case "9":
HTDSult = HTDSult + Math.pow(16, index) * 9;
break;
case "a":
HTDSult = HTDSult + Math.pow(16, index) * 10;
break;
case "b":
HTDSult = HTDSult + Math.pow(16, index) * 11;
break;
case "c":
HTDSult = HTDSult + Math.pow(16, index) * 12;
break;
case "d":
HTDSult = HTDSult + Math.pow(16, index - 1) * 13;
break;
case "e":
HTDSult = HTDSult + Math.pow(16, index - 1) * 14;
break;
case "f":
HTDSult = HTDSult + Math.pow(16, index - 1) * 15;
break;
}
index++;
}
return HTDSult;
}

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

Top