二维矩阵的常见转换技巧
Last updated
Last updated
如下图所示,每一个二维矩阵对应的,按第1行到第m行依次排列所得到的一维数组的坐标,可以互相转换
背景知识
对于十进制整数 x
,我们可以用 x & 1
得到 x
的二进制表示的最低位,它等价于 x % 2
:
例如当 x = 3
时,x
的二进制表示为 11
,x & 1
的值为 1
;
例如当 x = 6
时,x
的二进制表示为 110
,x & 1
的值为0
。
对于十进制整数 x
,我们可以用 x & (1 << k)
来判断 x 二进制表示的第 k
位(最低位为第 0
位)是否为 1
。如果该表达式的值大于零,那么第 k
位为 1
:
例如当 x = 3
时,x
的二进制表示为 11
,x & (1 << 1)
= 11 & 10
=10
>0
,说明第 1
位为 1
;
例如当 x = 5
时,x
的二进制表示为 101
,x & (1 << 1)
= 101 & 10
= 0
,说明第 1
位不为 1
。
举例
给定一个矩阵:
该矩阵如果按每行依次排开的话,可以转换成一维矩阵
将上述的一维矩阵看成一个二进制的数是:
对应的十进制是99
怎么转化
一个矩阵转化成二进制数再转化成十进制数:
一个十进制的数如何转化为二进制的矩阵: