Em đang làm bài tập lớn môn mạng máy tính nhưng em chỉ tìm thấy phần code của bài tập nhưng giờ em muốn chuyển nó về C mà khó quá bác nào thạo giúp em cái.Em cảm ơn nhiều code của nó đây
Mã:
1. Sinh ngẫu nhiên một số nguyên trong khoảng cho trước
#region Tạo một số ngẫu nhiên trong khoảng cho trước
public static int RandomNum(int iMinValue, int iMaxValue)
{
Random random = new Random();
return random.Next(iMinValue, iMaxValue);
}
#endregion
2. Sinh ngẫu nhiên 4 số đồng thời chuyển sang chuỗi ký tự
#region Tạo một chuỗi ngẫu nhiên dựa theo sinh số ngẫu nhiên và chuyển đổi sang ký tự
public static string RandomString()
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
int size = 4;
for (int i = 0; i < size; i++)
builder.Append(
Convert.ToChar(Convert.ToInt32(Math.Floor(94 * random.NextDouble() + 32))));
return builder.ToString();
}
#endregion
1. Chuyển 8 bits nhị phân sang số nguyên tương ứng
#region Chuyển một chuỗi nhị phân sang số thập phân tương ứng
public static int ConvertBina2Int(string strParam)
{
int iLeng = strParam.Length;
double iNumTmp = 0;
for (int iIndex = 0; iIndex < iLeng; iIndex++)
if (strParam[iIndex] == '1')
iNumTmp += Math.Pow((double)(2), (double)(iLeng – iIndex - 1));
return (int)iNumTmp;
}
#endregion
2. Chuyển từ mã nhị phân sang ký tự tương ứng
#region Chuyển một chuỗi nhị phân (lũy thừa của 8 bit )sang chuỗi ký tự tương ứng
public static string ConvertBina2Str(string strParam)
{
int iLeng = strParam.Length;
int iIndex = 0;
string strBuff = "";
while (iIndex < iLeng)
{
int iCount = 0;
string strTmp = "";
while (iCount < 8)
{
strTmp += strParam[iIndex++];
iCount++;
}
strBuff += ConvertInt2Char(ConvertBina2Int(strTmp));
}
return strBuff;
}
#endregion
3. Chuyển một số nguyên sang ký tự tương ứng
#region Chuyển một số nguyên sang ký tự tương ứng mã ASCII
public static char ConvertInt2Char(Int32 iParam)
{
return Convert.ToChar(iParam);
}
#endregion
Sử dụng hàm có sẵn Convert.ToChar(iParam);
4. Chuyển số nguyên thập phân sang chuỗi nhị phân
public static string ToBinary(int iParam)
{
string strBuff = "";
byte[] b = new byte[8];
int iIndex = 0;
while (iParam > 0)
{
b[iIndex++] = (byte)(iParam % 2);
iParam = iParam / 2;
}
while (iIndex < 8)
b[iIndex++] = 0;
while (iIndex != 0)
strBuff += b[--iIndex].ToString();
return strBuff;
}
5. Chuyển chuỗi ký tự sang chuỗi nhị phân
public static string GetBinary(string strParam)
{
byte[] b;
b = ASCIIEncoding.ASCII.GetBytes(strParam);
string strBuff = "";
for (int iIndex = 0; iIndex < b.Length; iIndex++)
strBuff += ToBinary(b[iIndex]);
return strBuff;
}
1. Chia hai chuỗi nhị phân có độ dài bằng nhau, không nhớ
(Thực chất là việc XOR bits)
public static string DivEqualStrBin(string strOne, string strTwo)
{
string strResidual = "";
int iLeng = strOne.Length;
for (int iIndex = 0; iIndex < iLeng; iIndex++)
{
if (strOne[iIndex] == strTwo[iIndex])
strResidual += '0';
else
strResidual += '1';
}
int iIndexOfStrSub = 0;
while (strResidual[iIndexOfStrSub++] != '1' && iIndexOfStrSub<strResidual.Length);
if (iIndexOfStrSub == strResidual.Length)
return "";
if (iIndexOfStrSub > 0)
{
string strSubResidual = "";
iIndexOfStrSub--;
while (iIndexOfStrSub < strResidual.Length)
{
strSubResidual += strResidual[iIndexOfStrSub++];
}
return strSubResidual;
}
return strResidual;
}
2. Chia hai chuỗi nhị phân khác nhau về độ lớn
public static string DivDifEqualStrBin(string strOne, string strTwo)
{
int iLengOne = strOne.Length;
int iLengTwo = strTwo.Length;
string strResidual = "";
int iIndex = 0;
while( iIndex < iLengOne)
{
if (strResidual.Length == 0)
while (iIndex < iLengOne && strOne[iIndex] != '1')
iIndex++;
while (strResidual.Length < iLengTwo && iIndex < iLengOne)
strResidual += strOne[iIndex++];
if (strResidual.Length == iLengTwo)
strResidual = DivEqualStrBin(strResidual, strTwo);
}
return strResidual;
}
Tao sao so ngau nhien
#region Sửa lỗi ngẫu nhiên [0,4]bit và ghi ra file
public static void CreatErrorAndWrite2File(string strParam)
{
StringBuilder strBuff = new StringBuilder(strParam);
int iTotalError = RandomNum(0, 5);
if (iTotalError > 0)
{
int[] iArrErr;
iArrErr = new int[iTotalError];
for (int iIndex = 0; iIndex < iTotalError; iIndex++)
{
while (true)
{
bool bCheck = false;
int iNewRan = RandomNum(0, 44);
for (int iIndex1 = 0; iIndex1 < iIndex; iIndex1++)
{
if (iNewRan == iArrErr[iIndex1])
{
bCheck = true;
break;
}
}
if (bCheck == false)
{
iArrErr[iIndex] = iNewRan;
break;
}
}
}
for (int iIndex = 0; iIndex < iTotalError; iIndex++)
{
if (strBuff[iArrErr[iIndex]] == '1')
strBuff[iArrErr[iIndex]] = '0';
else
strBuff[iArrErr[iIndex]] = '1';
}
}
Connect2File.WriteDataSended2File(strBuff.ToString());
}
#endregion
Bất chấp những lầm tưởng phổ quát, hồ hết những người có âm đạo đều khó lên đỉnh khi bị kích thích âm đạo. Tuy nhiên, điều đó không có tức thị nó không thể vui được! Việc xâm nhập vào âm đạo bằng...
Quý bà giải tỏa bằng việc kích...