成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 JavaScript 中將十進(jìn)制轉(zhuǎn)換為十六進(jìn)制

開(kāi)發(fā) 前端
在本文中,我們將學(xué)習(xí)如何在 JavaScript 中輕松地將十進(jìn)制數(shù)轉(zhuǎn)換為其等效的十六進(jìn)制數(shù)。我們將研究一些需要執(zhí)行此操作的真實(shí)場(chǎng)景。

在本文中,我們將學(xué)習(xí)如何在 JavaScript 中輕松地將十進(jìn)制數(shù)轉(zhuǎn)換為其等效的十六進(jìn)制數(shù)。我們將研究一些需要執(zhí)行此操作的真實(shí)場(chǎng)景。

數(shù)字 toString() 方法

要在 JavaScript 中將十進(jìn)制轉(zhuǎn)換為十六進(jìn)制,請(qǐng)對(duì)十進(jìn)制調(diào)用 toString() 方法,將 16 作為基數(shù)參數(shù)傳遞,即 num.toString(16)。toString() 方法將以十六進(jìn)制形式返回?cái)?shù)字的字符串表示形式。

例如:

const num = 60;
const hex = num.toString(16);
console.log(hex); // 3c

// Use parentheses when calling toString() directly
const hex2 = (60).toString(16);
console.log(hex2); // 3c

Number toString() 方法返回?cái)?shù)字的字符串表示形式。如果第一個(gè)參數(shù)指定了基數(shù),則數(shù)字以該基數(shù)表示。我們傳遞 16 以使用基數(shù) 16,這是十六進(jìn)制基數(shù)。

十六進(jìn)制使用 16 個(gè)符號(hào)來(lái)表示數(shù)字:

0 到 9 表示值 0 到 9

a 到 f(A 到 F)表示值 10 到 16。字母不區(qū)分大小寫(xiě),因此 3C2b 與 3c2B 的值完全相同。

在數(shù)字文字上調(diào)用 toString()

如果直接對(duì)數(shù)字文字調(diào)用 toString(),請(qǐng)確保將其括在括號(hào) (( )) 中或使用兩個(gè)點(diǎn) (..before toString():

// Use parentheses
const hex2 = (60).toString(16);
console.log(hex2); // 3c

// Use double dots
const hex3 = 50..toString(16);
console.log(hex3); // 32

如果你只使用一個(gè)不帶括號(hào)的點(diǎn),JavaScript 解析器會(huì)將其視為數(shù)字文字的一部分——小數(shù)點(diǎn)——而不是成員訪問(wèn)運(yùn)算符。

console.log(40.); // 40
console.log(20.); // 20

所以會(huì)出現(xiàn)錯(cuò)誤,因?yàn)樵诔蓡T名稱(chēng)之前沒(méi)有成員訪問(wèn)運(yùn)算符。

// SyntaxError
console.log(40.toString(16));

// SyntaxError
console.log(20.toString(16));

因此,您將數(shù)字括在括號(hào)中,以便它們之外的所有內(nèi)容都被視為與數(shù)字分開(kāi)。

console.log((40).toString(16)); // 28
console.log((20).toString(16)); // 14

或者您添加第二個(gè)點(diǎn),它將被視為成員訪問(wèn)運(yùn)算符。

console.log(40..toString(16)); // 28
console.log(20..toString(16)); // 14

用例:將 RGB(A) 轉(zhuǎn)換為十六進(jìn)制

將十進(jìn)制值轉(zhuǎn)換為十六進(jìn)制值的一種常見(jiàn)用途是將 RGB 顏色代碼轉(zhuǎn)換為其等效的十六進(jìn)制值。我們可以這樣做:

function decToHex(dec) {
return dec.toString(16);
}

function padToTwo(str) {
return str.padStart(2);
}

function rgbToHex(r, g, b) {
const hexR = padToTwo(decToHex(r));
const hexG = padToTwo(decToHex(g));
const hexB = padToTwo(decToHex(b));

return `#${hexR}${hexG}${hexB}`;
}

console.log(rgbToHex(255, 128, 237)); // #ff80ed

console.log(rgbToHex(195, 151, 151)); // #c39797

console.log(rgbToHex(16, 16, 16)); // #0f0f0f

我們創(chuàng)建了一個(gè)可重用的 rgbToHex() 函數(shù)來(lái)將 RGB 代碼轉(zhuǎn)換為其等效的十六進(jìn)制代碼。

我們使用 padToTwo() 函數(shù)將十六進(jìn)制代碼填充為兩位數(shù),例如 f -> 0f。

在將 R、G 和 B 的十進(jìn)制值轉(zhuǎn)換為十六進(jìn)制表示后,我們將它們連接到一個(gè)以 # 字符為前綴的字符串中,以形成十六進(jìn)制顏色代碼。

我們可以修改該函數(shù)以使其也接受 RGBA 值,其中 A 是用于指定顏色不透明度的百分比值(介于 0 和 1 之間)。A 將是十六進(jìn)制顏色代碼的前兩個(gè)字符,其值介于 00(0 或 0%)和 ff(255 或 100%)之間。

function decToHex(dec) {
return dec.toString(16);
}

function padToTwo(str) {
return str.padStart(2);
}

function rgbToHex(r, g, b, a) {
const hexR = padToTwo(decToHex(r));
const hexG = padToTwo(decToHex(g));
const hexB = padToTwo(decToHex(b));

// Set "a" to 1 if not specified
const aAbsolute = Math.round((a ?? 1) * 255);

const hexA = padToTwo(decToHex(aAbsolute));

return `#${hexA}${hexR}${hexG}${hexB}`;
}

console.log(rgbToHex(255, 128, 237)); // #ffff80ed

console.log(rgbToHex(195, 151, 151, 0.5)); // #80c39797

console.log(rgbToHex(16, 16, 16, 0.69)); // #b0101010

總結(jié)

以上就是我今天跟你分享的全部?jī)?nèi)容,希望你能從中學(xué)到新的東西,感謝閱讀。

責(zé)任編輯:華軒 來(lái)源: web前端開(kāi)發(fā)
相關(guān)推薦

2020-04-06 20:30:37

JavaScriptBoolean開(kāi)發(fā)

2009-08-28 10:55:16

C#實(shí)現(xiàn)轉(zhuǎn)換十六進(jìn)制

2022-12-25 16:15:38

HTMLJava可視化文檔

2020-07-19 10:23:13

C++進(jìn)制常量

2020-10-22 13:33:48

Java基礎(chǔ)入門(mén)

2011-03-23 13:52:09

ORACLESQL十進(jìn)制

2013-07-25 15:01:47

iOS開(kāi)發(fā)學(xué)習(xí)十六進(jìn)制和字符串轉(zhuǎn)換

2021-12-29 07:56:32

Go byte io.Reader

2011-04-13 14:37:35

十進(jìn)制浮點(diǎn).NET

2024-02-22 08:17:31

十六進(jìn)制數(shù)字計(jì)算

2016-11-15 14:29:14

Linux文件編碼轉(zhuǎn)換

2010-03-29 09:48:20

Ubuntu 10.1

2019-03-13 13:20:26

Linux十六進(jìn)制編輯器

2020-10-12 06:38:08

存儲(chǔ)定點(diǎn)數(shù)

2009-08-26 10:09:52

byte常用擴(kuò)展

2009-08-20 11:29:21

C#16進(jìn)制字符串

2024-01-17 08:22:23

16進(jìn)制值透明度顏色值

2017-06-04 15:24:31

BCD碼十進(jìn)制字符串

2015-11-24 09:53:22

AngularJSXMLJSON

2009-09-28 11:09:37

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品视频久久久久久 | 久久久久国产一区二区三区四区 | 国产在线观看一区二区三区 | 一二区成人影院电影网 | 国产精品视频久久 | 国产精品成人品 | 成人在线视频免费观看 | 中文字幕一区二区三区精彩视频 | 欧美成人激情 | 九色porny自拍视频 | 国产成人综合久久 | 激情的网站 | 国产99久久 | 自拍偷拍一区二区三区 | 99久久免费精品视频 | 日本爱爱 | 欧美一级片在线看 | 色综合视频在线 | 围产精品久久久久久久 | 成人福利在线视频 | 综合久久久久久久 | 日韩久久久久久久久久久 | 久久国产精品久久国产精品 | 狠狠做深爱婷婷综合一区 | 精品久久久久一区二区国产 | 久久青| 美女露尿口视频 | www.狠狠干 | 亚洲第一中文字幕 | 久久久久久久久久久久久9999 | 亚洲成人精品久久 | 免费成人高清在线视频 | 久久久一区二区三区四区 | 欧美日韩中文字幕 | 国产精品一区二 | 玖玖玖在线观看 | av午夜激情| 亚洲国产中文字幕 | 欧美日韩亚洲国产综合 | 一区二区三区视频在线观看 | 一级黄色片一级黄色片 |