摘要:進制轉(zhuǎn)換本身自帶進制轉(zhuǎn)換功能,支持進制的轉(zhuǎn)換注意,不能直接使用因為數(shù)字后面小數(shù)點后面會被識別成小數(shù)點的點將十進制的轉(zhuǎn)換成進制,結(jié)果是將進制的轉(zhuǎn)換成進制,結(jié)果是將十進制的轉(zhuǎn)換成進制,結(jié)果是將進制的轉(zhuǎn)換成進制,結(jié)果是將十進制的轉(zhuǎn)換成進制,結(jié)果
JavaScript進制轉(zhuǎn)換 JavaScript本身自帶進制轉(zhuǎn)換功能,支持2-36進制的轉(zhuǎn)換
// 注意,不能直接使用 11.toString(16); 因為數(shù)字后面小數(shù)點后面會被識別成小數(shù)點的點
Number(11).toString(16); // 將十進制的11轉(zhuǎn)換成16進制,結(jié)果是b
parseInt("b", 16); // 將16進制的b轉(zhuǎn)換成10進制,結(jié)果是11
Number(38).toString(36); // 將十進制的38轉(zhuǎn)換成36進制,結(jié)果是12
parseInt(12, 36); // 將36進制的12轉(zhuǎn)換成10進制,結(jié)果是38
Number(27).toString(2); // 將十進制的27轉(zhuǎn)換成2進制,結(jié)果是11011
parseInt("11011", 2); 、// 將二進制的11011轉(zhuǎn)換成10進制,結(jié)果是27
/** * 十進制和其他進制的相互轉(zhuǎn)換 */ class MyNumberConvertion { constructor(chars) { this.chars = chars; this.RADIX = chars.length; this.map = new Map(); for (let i = 0; i < this.RADIX; i++) { let c = chars[i]; this.map.set(c, i); } } /** * 將十進制數(shù)字轉(zhuǎn)換成指定進制 * @param {Number, String} num */ transfer(num) { let a = +num; //把字符串變成數(shù)字 let arr = []; if (a === 0) { arr.push("0"); } const RADIX = this.RADIX; while (a > 0) { let tmp = a % RADIX; let c = this.chars[tmp]; arr.unshift(c); a = parseInt(a / RADIX); } return arr.join(""); } /** * 將字符串還原成指定進制 * @param {String} str */ revert(str) { str = str + ""; str = str.trim(); let num = 0; let len = str.length; let RADIX = this.RADIX; for (let i = 0; i < len; i++) { let s = str[i]; let a = this.map.get(str[i]); num += a * Math.pow(RADIX, len - i - 1); } return num; } }
示例如下:
console.log("64進制"); // //初始化的字符串,字符串長度就是進制,從左到右,0對應(yīng)數(shù)值0,最后一個字符~對應(yīng)數(shù)值63 const chars64 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~"; // //初始化轉(zhuǎn)換器 const convertion64 = new MyNumberConvertion(chars64); let str64 = "445306828"; let num64 = convertion64.transfer(str64);//將數(shù)字轉(zhuǎn)換成64進制 let source64 = convertion64.revert(num64);//將64進制字符還原成原始數(shù)據(jù) console.log(`原始數(shù)據(jù):${str64}`); console.log(`轉(zhuǎn)換后:${num64}`) console.log(`還原后:${source64}`); console.log("2進制"); const convertion2 = new MyNumberConvertion("01"); let str2 = 15; let num2 = convertion2.transfer(str2); let source2 = convertion2.revert(num2); console.log(`原始數(shù)據(jù):${str2}`); console.log(`轉(zhuǎn)換后:${num2}`) console.log(`還原后:${source2}`); console.log("8進制"); const convertion8 = new MyNumberConvertion("01234567"); let str8 = 39; let num8 = convertion8.transfer(str8); let source8 = convertion8.revert(num8); console.log(`原始數(shù)據(jù):${str8}`); console.log(`轉(zhuǎn)換后:${num8}`) console.log(`還原后:${source8}`);
進制轉(zhuǎn)換小工具
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/104689.html
摘要:為數(shù)值固定的表示法,用來表示整數(shù)和浮點數(shù)的。無論你寫何種進制,它的存儲還是以二進制來存儲的,所以這樣就弄成了浮點數(shù)的存儲精確度,浮點數(shù)只能精確到位小數(shù)。關(guān)系運算符關(guān)系運算符有和。賦值運算符賦值運算符有六個。 現(xiàn)在的爬蟲越來越難了,不再和之前的那樣,隨便抓個包就可以找到相關(guān)的 url ,然后 post 一下或者 get 一下數(shù)據(jù)就出來了。還有一個可能就是可能你以前用來學(xué)習(xí)的爬蟲網(wǎng)站太簡單...
摘要:前言最近,朋友問了我這樣一個問題在中的運算結(jié)果,為什么是這樣的雖然我告訴他說,這是由于浮點數(shù)精度問題導(dǎo)致的。由于可以用階碼移動小數(shù)點,因此稱為浮點數(shù)。它的實現(xiàn)遵循標準,使用位精度來表示浮點數(shù)。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問了我這樣一個問題:在 chrome 中的運算...
摘要:表達式?jīng)]有返回值,因此返回結(jié)果是。并不改變表達式的結(jié)果,只要讓表達式不返回值按慣例我們用來獲得這主要源自語言,當(dāng)然使用或其他表達式也是可以的。不是數(shù)字的數(shù)字如果數(shù)學(xué)運算的操作數(shù)不是數(shù)字類型,就無法返回一個有效的數(shù)字,這種情況下返回值為。 這里的內(nèi)容是讀書筆記,僅供自己學(xué)習(xí)所用,有欠缺的地方歡迎留言提示。 第一部分 類型和語法 第1章 類型ECMAScript語言類型包括Undefin...
摘要:的數(shù)字類型是基于標準實現(xiàn)的,該標準也被稱為浮點數(shù)使用的是雙精度即位進制由于數(shù)字值可以使用對象進行封裝,因此數(shù)字值可以調(diào)用中的方法。 數(shù)組 和其他語言不同,在JavaScript中,數(shù)組可以擁有不同值類型,可以使字符串,數(shù)字,對象,還可以是數(shù)組(多維數(shù)組就是這樣形成的). 聲明數(shù)組后,可以直接通過索引的方式進行賦值: var arr = []; arr.length; //0 ...
摘要:五不要增加內(nèi)置的原型增加內(nèi)置構(gòu)造函數(shù)如,和等的原型屬性是一個增強功能性的強大的方法,但這可能會嚴重影響可維護性,因為這種做法將使代碼變得更加不可預(yù)測。推薦使用后者,這樣根據(jù)名字就能明顯地區(qū)分出變量函數(shù)和基本常量等。 一、盡量少用全局變量 減少全局名字空間污染,最理想的情況是一個應(yīng)用程序僅有一個全局變量。 二、單一var模式 var a = 1, b = 2, sum =...
閱讀 1905·2021-11-17 09:33
閱讀 3624·2021-11-16 11:40
閱讀 3144·2019-08-30 11:23
閱讀 1128·2019-08-29 16:36
閱讀 2539·2019-08-29 13:23
閱讀 1844·2019-08-29 12:59
閱讀 1673·2019-08-29 12:42
閱讀 2055·2019-08-28 18:22