javascript中的反向十六进制0x

javascript中的反向十六进制0x,javascript,hex,Javascript,Hex,我正在玩代码来制作精灵。我有一个右向精灵,一直在手动创建一个左向精灵。我正在寻找一种方法来反转一个十六进制0x,使精灵的脸向左。精灵的一行是0x01555500,另一行是0x05555400。有人知道我如何使用JavaScript实现这一点吗 示例: 阵列: [ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000

我正在玩代码来制作精灵。我有一个右向精灵,一直在手动创建一个左向精灵。我正在寻找一种方法来反转一个十六进制0x,使精灵的脸向左。精灵的一行是0x01555500,另一行是0x05555400。有人知道我如何使用JavaScript实现这一点吗

示例:

阵列:

[
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00554000, 0x01555500, 0x02AFB000, 0x0BBFBF00,
    0x0BAFEFC0, 0x0AFFAA00, 0x00FFFC00, 0x029A8000,
    0x0A9A6A00, 0x2A956A80, 0x3E75DBC0, 0x3F555FC0,
    0x3D5557C0, 0x01505400, 0x0A802A00, 0x2A802A80
]
反之亦然:

[
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00155000, 0x05555400, 0x00EFA800, 0x0FEFEE00,
    0x3FBFAE00, 0x0AAFFA00, 0x03FFF000, 0x002A6800,
    0x0A9A6A00, 0x2A956A80, 0x3E75DBC0, 0x3F555FC0,
    0x3D5557C0, 0x01505400, 0x0A802A00, 0x2A802A80
]
你可以用这个:

function reverse(line) {
    line2 = 0;
    for (var i = 0; i < 31; i++) {
        line2 = (line2 << 1) | (line & 1)
        line >>= 1;
    }
    return line2;
}
功能反转(行){
line2=0;
对于(变量i=0;i<31;i++){
第2行=(第2行>=1;
}
回流线2;
}
功能反转(行){
line2=0;
对于(变量i=0;i<31;i++){
第2行=(第2行>=1;
}
回流线2;
}
//演示:
var行=0x01555500;
var line2=反向(直线);
console.log(('0000000'+line.toString(16)).slice(-8));
console.log(('0000000'+line2.toString(16)).slice(-8));
您可以使用:

function reverse(line) {
    line2 = 0;
    for (var i = 0; i < 31; i++) {
        line2 = (line2 << 1) | (line & 1)
        line >>= 1;
    }
    return line2;
}
功能反转(行){
line2=0;
对于(变量i=0;i<31;i++){
第2行=(第2行>=1;
}
回流线2;
}
功能反转(行){
line2=0;
对于(变量i=0;i<31;i++){
第2行=(第2行>=1;
}
回流线2;
}
//演示:
var行=0x01555500;
var line2=反向(直线);
console.log(('0000000'+line.toString(16)).slice(-8));

console.log(('0000000'+line2.toString(16)).slice(-8))
反转的逻辑是什么?我有一个十六进制值数组,它们创建了一个面向右侧的精灵,如果我可以使用代码反转它们,我就不必手动反转它们,我可以告诉我的程序去做。我猜不出你的精灵数据是如何表示的,或者
0x01555500
是如何反转为
0x05555400
,如果将其用于表示水平像素阵列,则每个像素有多少位?新精灵([0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00554000、0x01555500、0x02AFB000、0x0BBFBF00、0x0BAFEFC0、0x0AFAA00、0x00FFFC00、0x029A8000、0x0A9A600、0x2A956A80、0x3E75DBC0、0x3F55FC0、0x3D5557C0、0x01505400、0x0A802A00、0x2A802A80])你还没有告诉我们反转的逻辑。你怎么知道十六进制代码的反转?算法是什么?反转的逻辑是什么?我有一个十六进制值数组,它们创建了一个面向右边的精灵,如果我可以使用代码反转它们,我就不必手动反转它们,我可以告诉我的程序去做。我可以不要猜测您的精灵数据是如何表示的,或者
0x01555500
如何反转为
0x05555400
,如果将其用于表示水平像素阵列,每个像素有多少位?新建精灵([0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00000000、0x00554000、0x01555500、0x02AFB000、0x0BBFBF00、0x0BAFEFC0、0x0AFAA00、0x00FFFC00、0x029A8000、0x0A9A600、0x2A956A80、0x3E75DBC0、0x3F55FC0、0x3D5557C0、0x01505400、0x0A802A00、0x2A802A80])您仍然没有告诉我们反转的逻辑。如何知道十六进制代码的反转?算法是什么?谢谢,我首先需要解析出0x,然后再将其添加到开头。有什么建议吗?解析出0x是什么意思?
0x
只是一种允许您以十六进制格式表示数字的符号,但它只是一个符号。我提供的函数用于数字,而不是字符串。无论您注意0xF还是15,它都是相同的数字。没有真正的“0x”已存储。我添加了一个代码段,您可以运行它来查看输入/输出的字符串表示形式。哦,再次感谢。这是我第一次使用十六进制代码,我将尝试一下,并让您知道结果。谢谢,我首先需要解析出0x,然后再将其添加到开头。有什么建议吗?解析出t是什么意思0x?
0x
只是一种允许您以十六进制格式表示数字的符号,但它只是一种符号。我提供的函数用于数字,而不是字符串。无论您注意0xF还是15,它都是相同的数字。没有真正的“0x”存储。我添加了一个代码段,您可以运行它来查看输入/输出的字符串表示形式。哦,再次感谢您。这是我第一次在代码中使用十六进制,我将尝试一下,并让您知道结果。