C# 计算包含十六进制值的数组的模式?
我正在用C语言编程 我一直在试验一些代码,这些代码计算包含整数的数组的模式。i、 e给定C# 计算包含十六进制值的数组的模式?,c#,hex,decimal,C#,Hex,Decimal,我正在用C语言编程 我一直在试验一些代码,这些代码计算包含整数的数组的模式。i、 e给定{5,6,2,1,5}模式为5 我的问题是,这可以用十六进制值来完成吗 例如,假设我有以下数组: unsigned char HEXVALUES[ ] = {0x66, 0x60, 0xe7, 0xf0, 0x66}; 我如何编写一个程序,告诉我0x66是模式 我曾考虑过将它们转换成十进制值,然后用这种方式找到模式,但似乎效率很低 谢谢十六进制值只是数值的一种表示形式。例如,这些都是相同十进制值102的表示
{5,6,2,1,5}
模式为5
我的问题是,这可以用十六进制值来完成吗
例如,假设我有以下数组:
unsigned char HEXVALUES[ ] = {0x66, 0x60, 0xe7, 0xf0, 0x66};
我如何编写一个程序,告诉我0x66是模式
我曾考虑过将它们转换成十进制值,然后用这种方式找到模式,但似乎效率很低
谢谢十六进制值只是数值的一种表示形式。例如,这些都是相同十进制值102的表示:
- 66(十六进制)
- 102(12月)
- 01100110(垃圾箱)
var array = new[] { 0x66, 0x60, 0xe7, 0xf0, 0x66 };
var mode = array.GroupBy(x => x).OrderByDescending(g => g.Count()).First().Key;
Console.WriteLine($"{mode:X}"); // output int as hex
我想任何收集的方式都是
theCollection
.GroupBy(x => x)
.OrderByDescending(x => x.Count())
.Select(g => g.FirstOrDefault())
.First()
“十六进制数”和整数是一样的。区别在于它们的可视化表示方式(在代码中,以及转换为字符串时)。在二进制中,它们是完全相同的
所以不管你以前用过什么代码
unsigned char[] list = new char[]{5,6,2,1,5};
FindMode(list);
将以相同的方式工作
unsigned char[] list = new char[]{0x66, 0x60, 0xe7, 0xf0, 0x66};
FindMode(list);
十六进制数(如0x66)是整数,将给出与十进制数相同的结果。Bot十六进制和十进制以二进制形式存储在内存中,并使用代码中指定的格式对字符串进行读/写操作。