1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
using System;
using System.Diagnostics;
namespace TestBinary
{
class Program
{
static void Main(string[] args)
{
Stopwatch s1;
Stopwatch s2;
Stopwatch s3;
Stopwatch s4;
string res = string.Empty;
for (int k = 0; k < 5; k++)
{
s1 = new Stopwatch();
s2 = new Stopwatch();
s3 = new Stopwatch();
s4 = new Stopwatch();
s1.Start();
for (int i = 0; i < 10000; i++)
{
for (byte j = byte.MinValue; j < byte.MaxValue; j++)
{
res = Test_1(j);
}
}
s1.Stop();
s2.Start();
for (int i = 0; i < 10000; i++)
{
for (byte j = byte.MinValue; j < byte.MaxValue; j++)
{
res = Test_2(j);
}
}
s2.Stop();
s3.Start();
for (int i = 0; i < 10000; i++)
{
for (byte j = byte.MinValue; j < byte.MaxValue; j++)
{
res = Test_3(j);
}
}
s3.Stop();
s4.Start();
for (int i = 0; i < 10000; i++)
{
for (byte j = byte.MinValue; j < byte.MaxValue; j++)
{
res = Test_4(j);
}
}
s4.Stop();
Console.WriteLine("Méthode 1 : {0}", s1.ElapsedMilliseconds);
Console.WriteLine("Méthode 2 : {0}", s2.ElapsedMilliseconds);
Console.WriteLine("Méthode 3 : {0}", s3.ElapsedMilliseconds);
Console.WriteLine("Méthode 4 : {0}", s4.ElapsedMilliseconds);
}
Console.ReadKey(true);
}
static string Test_1(byte val)
{
return Convert.ToString(val, 2).PadLeft(8, '0');
}
static string Test_2(byte val)
{
return string.Format("{0}{1}{2}{3}{4}{5}{6}{7}", (val & 128) >> 7, (val & 64) >> 6, (val & 32) >> 5, (val & 16) >> 4, (val & 8) >> 3, (val & 4) >> 2, (val & 2) >> 1, val & 1);
}
static string Test_3(byte val)
{
return new string(new char[8] { (char)('0' + ((val & 128) >> 7)), (char)('0' + ((val & 64) >> 6)), (char)('0' + ((val & 32) >> 5)), (char)('0' + ((val & 16) >> 4)), (char)('0' + ((val & 8) >> 3)), (char)('0' + ((val & 4) >> 2)), (char)('0' + ((val & 2) >> 1)), (char)('0' + (val & 1)) });
}
static string Test_4(byte val)
{
char[] res = new char[8] { '0', '0', '0', '0', '0', '0', '0', '0' };
res[0] += (char)(val & 1);
res[1] += (char)((val & 2) >> 1);
res[2] += (char)((val & 4) >> 2);
res[3] += (char)((val & 8) >> 3);
res[4] += (char)((val & 16) >> 4);
res[5] += (char)((val & 32) >> 5);
res[6] += (char)((val & 64) >> 6);
res[7] += (char)((val & 128) >> 7);
return new string(res);
}
}
} |
Partager