[英]Convert hexadecimal color string to integer in javascript
我已經在javascript中編寫了一個函數,將顏色的整數形式從db轉換為十六進制顏色格式。但是我無法將十六進制顏色字符串轉換為int形式.parseInt(color.substr(1),16)給出了不同的結果。
<html>
<body>
<button onclick="myFunction()">Try it</button>
<p id="test"></p>
<script>
function myFunction() {
var color="#ff0000";
var num = -65536;
var alphalessHexString =getHexColor(num);
var n = alphalessHexString+"</br>";
var ques="i want a function to convert "+color +" to "+num;
document.getElementById("test").innerHTML = n+ques;
}
function getHexColor(number){
return "#"+((number)>>>0).toString(16).slice(-6);
}
</script>
</body>
</html>
如果需要帶符號的24位值,則該函數為
function colorToSigned24Bit(s) { return (parseInt(s.substr(1), 16) << 8) / 256; } console.log(colorToSigned24Bit('#ff0000'))
說明:
signed 32
bit number
value 32 bit binary in decimal
------------------------- --------- --------------------------------------- ----------
parseInt(s.substr(1), 16) 16711680 0000 0000 1111 1111 0000 0000 0000 0000 16711680
16711680 << 8 4278190090 1111 1111 0000 0000 0000 0000 0000 0000 -16777216
-16777216 / 256 -65536 1111 1111 1111 1111 0000 0000 0000 0000 -65536
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.