javascript十六进制及二进制转化的方法

下面是“javascript 十六进制及二进制转化的方法”的完整攻略。

十六进制转化为二进制

十六进制转化为二进制的方法包括以下两步:

第一步

将十六进制数转换为二进制形式,即将每个十六进制数字都用其平衡的4位二进制数来表示。例如,$A$ 的十六进制是 $1010$,则对应的二进制是 $0101\ 10$。

第二步

将二进制形式中的每一位从左到右进行反向排列,得到的就是十六进制数转换成的二进制数。例如,将 $0101\ 10$ 进行反向排列后,得到的就是 $0110\ 1010$。

以下是一个将十六进制转换为二进制的示例:

function hexToBinary(hex) {
  const hex2bin = {
    "0": "0000",
    "1": "0001",
    "2": "0010",
    "3": "0011",
    "4": "0100",
    "5": "0101",
    "6": "0110",
    "7": "0111",
    "8": "1000",
    "9": "1001",
    "A": "1010",
    "B": "1011",
    "C": "1100",
    "D": "1101",
    "E": "1110",
    "F": "1111"
  };
  let binary = "";
  for (let i = 0; i < hex.length; ++i) {
    binary += hex2bin[hex[i]];
  }
  return binary.split("").reverse().join("");
}

console.log(hexToBinary("A7F")); // "111101111"

二进制转化为十六进制

二进制转化为十六进制的方法包括三步:

第一步

将二进制数从右向左每四位分组,不足的在前面补 $0$,例如,$111101111$ 变成 $0001\ 1110\ 1111$。

第二步

将每一组的二进制数转换为十六进制数,即将 $0001$ 转换为 $1$,将 $1110$ 转换为 $E$,将 $1111$ 转换为 $F$,得到的就是十六进制数。例如, $0001\ 1110\ 1111$ 转换为 $1EF$。

第三步

去掉前导 $0$,即得到最终的十六进制数。例如,$1EF$ 这个十六进制数就是 $111101111$ 这个二进制数转换的结果。

以下是一个将二进制转换为十六进制的示例:

function binaryToHex(binary) {
  const bin2hex = {
    "0000": "0",
    "0001": "1",
    "0010": "2",
    "0011": "3",
    "0100": "4",
    "0101": "5",
    "0110": "6",
    "0111": "7",
    "1000": "8",
    "1001": "9",
    "1010": "A",
    "1011": "B",
    "1100": "C",
    "1101": "D",
    "1110": "E",
    "1111": "F"
  };
  binary = binary.padStart(Math.ceil(binary.length / 4) * 4, "0");
  let hex = "";
  let i = binary.length;
  while (i > 0) {
    hex = bin2hex[binary.slice(i - 4, i)] + hex;
    i -= 4;
  }
  return hex.replace(/^0+/, "");
}

console.log(binaryToHex("111101111")); // "1EF"

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript十六进制及二进制转化的方法 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • 在Asp中用“正则表达式对象”来校验数据的合法性

    可以通过如下步骤,在Asp中使用“正则表达式对象”来校验数据的合法性: 步骤1 定义正则表达式 首先,在Asp中使用“正则表达式对象”进行数据校验,需要先定义一个正则表达式。正则表达式可以通过构造函数或字面量来定义,如下所示: Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp…

    JavaScript 2023年6月10日
    00
  • thinkphp整合系列之极验滑动验证码geetest功能

    以下是详细的“thinkphp整合系列之极验滑动验证码geetest功能”的完整攻略: 1. 引入SDK 首先,需要将极验官网提供的验证码 SDK 文件夹拷贝到工程目录下。在 thinkphp 中,可以将 SDK 文件夹放到项目的 vendor 目录下。 在控制器中引入 SDK: require_once ‘./vendor/geetest-sdk/clas…

    JavaScript 2023年6月10日
    00
  • Vue基础语法知识梳理上篇

    Vue基础语法知识梳理上篇是一篇介绍Vue.js框架基础语法的文章,本文将对该篇文章进行详细讲解。 一、Vue的基本使用方法 Vue.js框架可以通过以下标准方法进行使用: <div id="app"> {{ message }} </div> var app = new Vue({ el: ‘#app’, dat…

    JavaScript 2023年6月11日
    00
  • javascript实现数组中的内容随机输出

    下面是Javascript实现数组中内容随机输出的完整攻略: 1. 生成随机数 Javascript标准库中有一个Math对象,可以使用Math.random()方法生成[0,1)之间的随机数。那么我们只需要将这个数乘以数组的长度,然后向下取整,就可以得到一个数组下标的随机数。 var arr = [‘apple’, ‘banana’, ‘orange’, …

    JavaScript 2023年5月27日
    00
  • javascript实现类似java中getClass()得到对象类名的方法

    要实现类似Java中getClass()方法的对象类名获取方式,可以使用JavaScript中的Object.prototype.toString方法。这个方法可以返回一个表示当前对象的字符串,其中包含了对象的类型信息。 下面是实现该方法的详细步骤: 定义一个全局函数,比如叫做getClass,接收一个对象作为参数。 function getClass(ob…

    JavaScript 2023年6月11日
    00
  • js实现图片轮换效果代码

    下面是JS实现图片轮换效果的完整攻略。 确定轮换效果的基本样式 在实现图片轮换效果之前,我们需要先确定图片轮换效果的基本样式。通常的图片轮换效果包括以下几个特征: 轮换的图片需要以一定的间隔时间进行切换 图片的切换需要具有一定的动效 切换的图片需要在轮换效果的容器中进行展示 因此,我们可以先定义一个基本的样式,包含一个轮换容器和轮换的图片,其中轮换的图片通过…

    JavaScript 2023年6月11日
    00
  • js里取容器大小、定位、距离等属性搜集整理

    在JavaScript中,获取元素的位置、大小、距离等属性是开发中经常使用的操作,以下是获取常用属性的完整攻略: 获取元素大小 获取元素的大小(宽度和高度)有不同的方法,其中包括: 通过clientWidth和clientHeight clientWidth或clientHeight属性返回元素的可见宽度和高度(不包括滚动条)。 const element …

    JavaScript 2023年6月10日
    00
  • 在JavaScript中使用timer示例

    下面是关于在JavaScript中使用timer的完整攻略: 什么是 Timer? 在 JavaScript 中, Timer 用于将一个代码块延迟一段时间后执行,或者每隔一段时间就重复执行。Timer 有两种类型:setTimeout()和setInterval()。 setTimeout() setTimeout()方法可用于延迟一次性执行代码的执行。可…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部