2013年11月25日 星期一
2013年9月12日 星期四
C# CRC32
public class Crc32
{ uint[] table; public uint Checksum(byte[] bytes)
{ uint crc = 0xffffffff; for(int i = 0; i < bytes.Length; ++i)
{ byte index = (byte)(((crc) & 0xff) ^ bytes[i]); crc = (uint)((crc >> 8) ^ table[index]); } return ~crc; } public byte[] ChecksumBytes(byte[] bytes)
{ return BitConverter.GetBytes(Checksum(bytes)); } public Crc32()
{ uint Q= 0x12345678; table = new uint[256]; uint temp = 0; for(uint i = 0; i < table.Length; ++i)
{ temp = i; for(int j = 8; j > 0; --j)
{
if((temp & 1) == 1)
{
temp = (uint)((temp >> 1) ^ Q);
}
else
{ temp >>= 1; } } table[i] = temp; } } }
2013年7月10日 星期三
c# real-time
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading;
namespace Test_time
{
public static class Program
{
public static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
for (int i = 0; i < 10; ++i)
{
sw.Reset();
sw.Start();
Thread.Sleep(50);
sw.Stop();
Console.WriteLine("(default) Slept for " + sw.ElapsedMilliseconds);
TimeBeginPeriod(1);
sw.Reset();
sw.Start();
Thread.Sleep(50);
sw.Stop();
TimeEndPeriod(1);
Console.WriteLine("(highres) Slept for " + sw.ElapsedMilliseconds + "\n");
}
}
[DllImport("winmm.dll", EntryPoint="timeBeginPeriod", SetLastError=true)]
private static extern uint TimeBeginPeriod(uint uMilliseconds);
[DllImport("winmm.dll", EntryPoint="timeEndPeriod", SetLastError=true)]
private static extern uint TimeEndPeriod(uint uMilliseconds);
}
}
2013年6月18日 星期二
Windows 關閉「資料執行防止」(DEP)
Windows 關閉「資料執行防止」(DEP)
modify c:\boot.ini
/noexecute=optin
OptIn:預設值,保護基本的 Windows 程式和服務
OptOut:針對所有程式啟用 DEP (可定義例外清單)
AlwaysOn:針對所有程式啟用 DEP (無法定義例外清單)
AlwaysOff:關閉 DEP 功能
OptOut:針對所有程式啟用 DEP (可定義例外清單)
AlwaysOn:針對所有程式啟用 DEP (無法定義例外清單)
AlwaysOff:關閉 DEP 功能
2013年3月11日 星期一
2013年1月22日 星期二
2013年1月21日 星期一
2013年1月15日 星期二
訂閱:
文章 (Atom)