JS中的进制转换以及作用
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现:
- //10进制转为16进制
- ().toString() // =>"a"
- //8进制转为16进制
- ().toString() // =>"a"
- //16进制转为10进制
- (0x16).toString() // =>"22"
- //16进制转为8进制
- (0x16).toString() // =>"26"
- //10进制转为2进制 //=>
- ().toString() // => "10001010111"
- //8进制转为2进制 //=>
- ().toString() //=>"1001001001"
- //16进制转为2进制 //=>
- (0x16).toString() // => "10110"
如果要处理2进制到10进制,16进制到10进制,8进制到10进制, 需要用了paresInt这个方法:
- //2进制到10进制;
- parseInt(,) //=>2
- //2进制到10进制;
- parseInt(,) //=>4
- //16进制到10进制
- parseInt(, ) //=>18
- //8进制到10进制
- parseInt(,); //=>10
进制转换
如果要实现进制之间的转换, 可以利用parseInt方法, 先转化为10进制, 然后再利用toString(参数), 转化成不同的进制;
利用toString和parseInt方法可以实现一个进制转化的工具:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <body>
- <script language="javascript">
- function test()
- {
- var num=document.getElementById("in").value;
- var type=document.getElementById("title");
- var tynum,to;
- for(var i=;i<type.length;i++)
- {
- if(type[i].selected)
- tynum=parseInt(type[i].value);
- }
- switch(tynum)
- {
- case():to=parseInt(num).toString();break;
- case():to=parseInt(num).toString();break;
- case():to=parseInt(num).toString();break;
- case():to=parseInt(num,);break;
- case():to=parseInt(num,);break;
- case():to=parseInt(num,);break;
- case():to=parseInt(num,).toString();break;
- case():to=parseInt(num,).toString();break;
- case():to=parseInt(num,).toString();break;
- case():to=parseInt(num,).toString();break;
- case():to=parseInt(num,).toString();break;
- case():to=parseInt(num,).toString();break;
- }
- if(isNaN(to))
- to="输入非法字符了哦"
- document.getElementById("out").value=to;
- }
- </script>
- <select name="title" id="title" style="width:152px;">
- <option value="">十进制转二进制</option>
- <option value="">十进制转八进制</option>
- <option value="">十进制转十六进制</option>
- <option value="">二进制转十进制</option>
- <option value="">八进制转十进制</option>
- <option value="">十六进制转十进制</option>
- <option value="">二进制转八进制</option>
- <option value="">八进制转二进制</option>
- <option value="">二进制转十六进制</option>
- <option value="">十六进制转二进制</option>
- <option value="">八进制转十六进制</option>
- <option value="">十六进制转八进制</option>
- </select><br />
- <input type="text" id="in" /><br>
- <input type="text" id="out" /><br/>
- <input type="button" value="change" onclick="test()" />
- <font color="#FF0000" style="font-size:12px;">*注:存在非法字符时,我们只截断有效字符进行转换</font>
- </body>
- </html>
简单加密解密
把字符串转化成unicode, 然后再把unicode转成不同的进制 , 实现代码加密处理:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8"/>
- <title></title>
- </head>
- <body>
- <script>
- function en(code, h){
- //简单的jS加密解密<br>//code为对应的字符串,h为(2,8,10,16)就是要转成的几进制<br>function en(code, h) {
- var monyer = new Array();var i;
- for(i=;i<code.length;i++)
- monyer+=code.charCodeAt(i).toString(h)+"_";//就是把字符串转成ascll码,然后再转成你想的几进制
- return monyer;
- };
- function de(code, h) {
- var i,s="",code = code.split("_");
- for(i=;i<code.length;i++) {
- s += String.fromCharCode(parseInt(code[i],h));
- };
- return s
- };
- en("1哇哈哈",) //=> "61_52307_52310_52310_"
- de("61_52307_52310_52310_",) //=> "1哇哈哈
- </script>
- </body>
- </html>
零宽字符
利用零宽字符的零宽度, 我们把所有的字符串转化成二进制, 然后利用零宽字符进行表示, 那么生成的字符串长度就会为0, 主要反编译即可还原,
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8"/>
- <title></title>
- </head>
- <body>
- <script>
- function en(str) {
- var rep = {
- '': '\u200b',
- '': '\u200c',
- '': '\u200d',
- '': '\uFEFF'
- };
- str = str.replace(/[^\x00-\xff]/g, function (a) { // 转码 Latin-1 编码以外的字符。
- return escape(a).replace('%', '\\');
- });
- str = str.replace(/[\s\S]/g, function (a) { // 处理二进制数据并且进行数据替换
- a = a.charCodeAt().toString();
- a = a.length < ? Array( - a.length).join('') + a : a;
- return a.replace(/../g, function (a) {
- return rep[a];
- });
- });
- return str;
- }
- ;
- function de(str) {
- return unescape(str.replace(/.{}/g, function (a) {
- var rep = {"\u200b": "", "\u200c": "", "\u200d": "", "\uFEFF": ""};
- return String.fromCharCode(parseInt(a.replace(/./g, function (a) {
- return rep[a]
- }), )).replace(/\\/g,"%")
- }))
- }
- var str = en("1哇哈哈");
- console.log(str.length);
- console.log(de(str));
- </script>
- </body>
- </html>
参考:
JS简单加密(我的另外一篇随笔):http://www.cnblogs.com/diligenceday/p/3811440.html
JS中的进制转换以及作用的更多相关文章
- JS中的进制转换
1 前言 js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现. 仅作为记录. 2 代码 //10进制转为16进制 (10).to ...
- java中16进制转换10进制
java中16进制转换10进制 public static void main(String[] args) { String str = "04e1"; String myStr ...
- Oracle 中的进制转换
Oracle 中的进制转换 */--> Oracle 中的进制转换 Table of Contents 1. 进制名 2. 10进制与16进制互相转换 2.1. 10进制转换为16进制 2.2. ...
- java中的进制转换
java中的进制转换及转换函数 转自:https://blog.csdn.net/V0218/article/details/74945203 Java的进制转换 进制转换原理 十进制 转 二进制: ...
- iOS蓝牙中的进制转换
Bluetooth4.0.jpg 最近在忙一个蓝牙项目,在处理蓝牙数据的时候,经常遇到进制之间的转换,蓝牙处理的是16进制(NSData),而我们习惯的计数方式是10进制,为了节省空间,蓝牙也会把16 ...
- iOS蓝牙中的进制转换,数据格式转换
最近在忙一个蓝牙项目,在处理蓝牙数据的时候,经常遇到进制之间的转换,蓝牙处理的是16进制(NSData),而我们习惯的计数方式是10进制,为了节省空间,蓝牙也会把16进制(NSData)拆成2进制记录 ...
- c#与js中10进制16进制的转化,记录防忘
js: var param="11"; param=parseInt(param,16); //17 param=parseInt(param,10); //11 //后面的参 ...
- python中的进制转换
python中常用的进制转化通常有两种方法: 1.用内置函数hex(),oct(),bin(),对应的数字表示为0x,0o,0b,功能是把十进制数字转化为其他进制 >>> int( ...
- Delphi中的进制转换
二进制转换 function binToDec(Value: string): integer; var str: string; i: integer; begin Str := UpperCase ...
随机推荐
- Android-配置文件中设置“android:clickable="false"无效的原因及解决办法
开发中遇到的问题:要实现一个button初始为不可点击,于是在配置文件中设置了android:clickable="false"运行后发现还是可以点击,于是写在了Activity中 ...
- 【产品 & 设计】入门 - 工具篇 - Sketch + Skala Preview
前言 做产品和设计快 1 年了,积累了一点经验分享一下 —— 抛砖引玉,欢迎交流. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: ht ...
- iOS开发之Socket通信实战--Request请求数据包编码模块
实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...
- python文件读写操作与linux shell变量命令交互执行
python对文件的读写还是挺方便的,与linux shell的交互变量需要转换一下才能用,这比较头疼! #coding=utf-8 #!/usr/bin/python import os impor ...
- OkHttp简介
什么是OKHttp 一般在Java平台上,我们会使用Apache HttpClient作为Http客户端,用于发送 HTTP 请求,并对响应进行处理.比如可以使用http客户端与第三方服务(如SSO服 ...
- jQuery对表格的操作及其他应用
表格操作 1.隔行变色:对普通表格进行隔行换色:单击显示高亮样式:复选框选中高亮 <!DOCTYPE html> <html> <head> <meta ht ...
- Ajax.ActionLink参数详解
该语法会生成一个a标签,点击a标签会执行一个Ajax请求. 有12个方法重载,下面详解方法中的各项参数: 参数一:linkText string类型 说明:链接显示的文字内容 参数二:actionNa ...
- 杀毒软件导致YourSQLDba备份失败
有一朋友咨询我,他配置的YourSQLDba 备份作业经常出现备份失败的情况,我帮忙查看了一下,首先从告警邮件中查看出错的具体信息,执行了下面SQL语句(来自于告警邮件) Exec YourSQLDb ...
- 做的一个HTML表白页面
页面地址: http://myspace123.qiniudn.com/love/index.html 目录文件结构: index.html <html xmlns="http://w ...
- 《java JDK7 学习笔记》之类和对象
1.在java中,要产生对象必须先定义类,类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例对象要使用new关键词.以类名声明的变量,称为参考名称.参考变量或直接叫参考. 2.想 ...