在javascript中将颜色转换回数字

在javascript中将颜色转换回数字,javascript,colors,hex,parseint,Javascript,Colors,Hex,Parseint,我有一个现有的fn,其功能如下: public GetColor = (argb: number) => { var a = 1;// (argb & -16777216) >> 0x18; // gives me FF var r = (argb & 0xff0000) >> 0x10; var g = (argb & 0x00ff00) >> 0x8;

我有一个现有的fn,其功能如下:

    public GetColor = (argb: number) => {

        var a = 1;// (argb & -16777216) >> 0x18; // gives me FF


        var r = (argb & 0xff0000) >> 0x10;
        var g = (argb & 0x00ff00) >> 0x8;
        var b = (argb & 0x0000ff);
        var curKendoColor = kendo.parseColor("rgba(" + r + "," + g + "," + b + "," + a + ")", false);
我想知道我需要返回一个数字的函数

例如,如果我的AARRGGBB为(FFFF0000),我想返回到toColor将从中派生的数字版本

我会同意返回号码的未签名版本或签名版本。未签名的应该是-65536,但未签名的也可以(不确定现在我脑子里会出现什么数字)

我尝试过这样做,但尝试都以0结束,我知道这是不正确的:
colorSend |=(parseInt(this.Color.substr(0,2),16)&255)实际上这很简单。您只需理解十六进制值的含义。
在十六进制系统中,从10到15的每个数字都由字母A到F表示。低于10的数字是正常数字1到9。所以如果你想把11转换成十六进制,它应该是0B。因为你不需要低于11(0)的数字,字母B代表11。如果您阅读了一些关于十六进制系统的知识,您应该能够非常轻松地编写新函数;)

好吧,我找到了一些似乎对我有用的东西。我简化了一点,但是对于ARGB,我可以做一些类似的事情

val = "0xFFFF0000"
val = parseInt(val, 16)
if((val & 0x80000000) != 0)
{
   val = val - 0x100000000;
}
举个例子,红色加上一个FF,我会得到-
-65536或对于unsigned,我可以省略最后一部分。

好吧,看看代码的单向性,你是如何尝试代码的反向性的?例如,关于这样做,你的具体问题是什么?现在的问题是“请编写此函数为我实现此代码的相反方向。”这不是它的目的。我曾尝试过做类似于sorry的事情,是的,我添加了我的第一次尝试,但所有人都认为这没有达到我的预期。是的,谢谢你的输入,我知道什么是十六进制以及数字是如何表示的,但这并不能解决我需要的函数,无法写出上述函数的相反部分。我还知道,我可以使用parseInt和基数16来获取,例如,r值转换为“256”以及其他G和B的类似值。但是,如果流程需要从这里开始,这就是我的问题。