C# 如何将存储在数组中的整数转换为二进制
我知道如何将整数从十进制转换为固定长度的二进制字符串:C# 如何将存储在数组中的整数转换为二进制,c#,arrays,binary,type-conversion,C#,Arrays,Binary,Type Conversion,我知道如何将整数从十进制转换为固定长度的二进制字符串: int number = 3; int toBase = 2; int length = 8; Convert.ToString(number, toBase).PadLeft(length, '0') var num = 123; var bits = Enumerable.Range(0, 8).Select(i => (num >> (7-i)) & 1).ToArray(); 输出: 00000011
int number = 3;
int toBase = 2;
int length = 8;
Convert.ToString(number, toBase).PadLeft(length, '0')
var num = 123;
var bits = Enumerable.Range(0, 8).Select(i => (num >> (7-i)) & 1).ToArray();
输出:
00000011
如何将该二进制字符串的各个元素分配给int
(或bool
)数组,以便在转换后数组看起来像1:
或
一,。使用工具和不平凡的
进行循环,并使用char
到int
(或bool
)类型转换。例如,如果存储已创建的字符串
string theBinaryString = Convert.ToString(number, toBase).PadLeft(length, '0');
int[] binary = new int[8];
for(int i = 0; i < 8; i++)
{
binary[i] = int.parse(theBinaryString[i].ToString());
}
string theBinaryString=Convert.ToString(数字,toBase).PadLeft(长度,'0');
int[]二进制=新的int[8];
对于(int i=0;i<8;i++)
{
binary[i]=int.parse(二进制字符串[i].ToString());
}
循环完成后,您将拥有要查找的数组,ToString()
是必需的,因为从字符串中进行选择就像它是一个数组一样,返回一个无法解析为int的字符。例如,如果您存储了创建的字符串
string theBinaryString = Convert.ToString(number, toBase).PadLeft(length, '0');
int[] binary = new int[8];
for(int i = 0; i < 8; i++)
{
binary[i] = int.parse(theBinaryString[i].ToString());
}
int[] intArray = stringNumber.ToCharArray().Select(n => Convert.ToInt32(n)).ToArray();
string theBinaryString=Convert.ToString(数字,toBase).PadLeft(长度,'0');
int[]二进制=新的int[8];
对于(int i=0;i<8;i++)
{
binary[i]=int.parse(二进制字符串[i].ToString());
}
循环完成后,您将拥有要查找的数组,ToString()
是必需的,因为从字符串中进行选择就像它是一个数组一样,返回一个无法解析为int的字符。您可以添加一些Linq以将字符串
表示为数组:
int[] intArray = stringNumber.ToCharArray().Select(n => Convert.ToInt32(n)).ToArray();
string source = Convert.ToString(number, toBase).PadLeft(length, '0');
或者,您可以直接计算数组:
int[] binary = Enumerable
.Range(1, length)
.Select(i => number / (1 << (length - i)) % 2)
.ToArray();
bool[] binary = Enumerable
.Range(1, length)
.Select(i => number / (1 << (length - i)) % 2 == 1)
.ToArray();
int[]二进制=可枚举
.范围(1,长度)
.选择(i=>number/(1 number/(1您可以添加一些Linq以将字符串
表示为数组:
string source = Convert.ToString(number, toBase).PadLeft(length, '0');
或者,您可以直接计算数组:
int[] binary = Enumerable
.Range(1, length)
.Select(i => number / (1 << (length - i)) % 2)
.ToArray();
bool[] binary = Enumerable
.Range(1, length)
.Select(i => number / (1 << (length - i)) % 2 == 1)
.ToArray();
int[]二进制=可枚举
.范围(1,长度)
.选择(i=>number/(1个数字/(1可能是这样)
"1000110101110".ToCharArray().Select(c => c - '0').ToArray()
将为您提供:
int[13] { 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0 }
也许是这样
"1000110101110".ToCharArray().Select(c => c - '0').ToArray()
将为您提供:
int[13] { 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0 }
您可以在不将数字转换为二进制字符串的情况下执行此操作:
int number = 3;
int toBase = 2;
int length = 8;
Convert.ToString(number, toBase).PadLeft(length, '0')
var num = 123;
var bits = Enumerable.Range(0, 8).Select(i => (num >> (7-i)) & 1).ToArray();
其思想是按减少的位置数顺序将数字右移,并屏蔽除最低有效位以外的所有位
无需将数字转换为二进制字符串即可:
int number = 3;
int toBase = 2;
int length = 8;
Convert.ToString(number, toBase).PadLeft(length, '0')
var num = 123;
var bits = Enumerable.Range(0, 8).Select(i => (num >> (7-i)) & 1).ToArray();
其思想是按减少的位置数顺序将数字右移,并屏蔽除最低有效位以外的所有位
duplicate?bool[]binary=Convert.ToString(…)。选择(c=>c=='1').ToArray();
duplicate?bool[]binary=Convert.ToString(…)。选择(c=>c=='1')。ToArray()
@viveknuna是的,我修好了。我的bad@viveknuna是的,我把它修好了。我的坏的48
-一个坏的数字;把'0'
放在前面。当你读你的代码时,很不清楚48
代表什么。把'0'
,也就是c=>c-'0'
放在前面,让它更清楚:当前字符减去'0'
w虽然我有点明白你说的话,但我在想,因为我们正在编程,而且正在使用chararray函数。很明显,48是一个从字符c中减去的整数。如果你愿意,你可以进行编辑。48
-幻数,这是一个不好的密码;在阅读时,将'0'
放在前面你的代码,很不清楚48
代表什么。把'0'
,也就是c=>c-'0'
说得很清楚:当前字符减去'0'
,虽然我有点明白你的意思,但我的想法是,因为我们正在编程,而且正在使用chararray函数,很明显48 i这是一个从c中减去的整数,一个字符。如果你愿意,你可以进行编辑。谢谢你的回答!这就是int
数组,对吗?@Ziezi是的,这会生成一个int
s数组。如果你想要一个char
s数组,请向Select
表达式添加一个条件,或者将结果添加到'0'
以进行转换一个int
到char
的数字。谢谢你的回答!这就是int
数组,对吗?@Ziezi是的,这会生成一个int
s的数组。如果你想要一个char
s的数组,请向选择表达式添加一个条件,或者将结果添加到'0'
以将int
转换为char
数字。谢谢你的回答!谢谢你的回答!