PDA

View Full Version : سوال: داده در حالت باینری



s.a.s.a.n
جمعه 04 بهمن 1392, 14:44 عصر
سلام دوستان . همه میدونیم که اطلاعات هر چیزی که باشند بالاخره به صورت بیت های 1 یا 0 روی هارد دیسک(حافظه دایمی ) ذخیره میشن . (اگه غیر از این هست راهنماییم کنید ) دنبال راهی هستم که بتونم این کد های 0 و 1 رو داشته باشم . مثلا یک فیلم 2 گیگابایتی رو میخوام به صورت 0 و 1 داشته باشم . خیلی ممنون میشم اگه کمکم کنید

fmehrvarzi
جمعه 04 بهمن 1392, 15:38 عصر
مقدمه:
تمام اطلاعات در کامپیوتر در واحد بایت ذخیره می شود
و هر بایت میتونه مقادیر 0 تا 255 را داشته باشد
و بایت را در سی شارپ با byte نمایش میدهند.

شما میتونید مسیر فایل مورد نظرتان را توسط OpenFileDialog بگیرید
و سپس مسیرتان را توسط این تابع به آرایه ای از بایتها تبدیل کنید
/************Convert file to byte array***************/
/// <summary>
/// Function to get byte array from a file
/// </summary>
/// <param name="_FileName">File name to get byte array</param>
/// <returns>Byte Array</returns>
public byte[] FileToByteArray(string _FileName)
{
byte[] _Buffer = null;

try
{
// Open file for reading
System.IO.FileStream _FileStream = new System.IO.FileStream(_FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);

// attach filestream to binary reader
System.IO.BinaryReader _BinaryReader = new System.IO.BinaryReader(_FileStream);

// get total byte length of the file
long _TotalBytes = new System.IO.FileInfo(_FileName).Length;

// read entire file into buffer
_Buffer = _BinaryReader.ReadBytes((Int32)_TotalBytes);

// close file reader
_FileStream.Close();
_FileStream.Dispose();
_BinaryReader.Close();
}
catch (Exception _Exception)
{
// Error
Console.WriteLine("Exception caught in process: {0}", _Exception.ToString());
}

return _Buffer;
}

برای تبدیل بایت به باینری هم میتونید از این اسنیپت استفاده کنید

byte b = 45;
//Will be "101101"
var bitstring = Convert.ToString(b, 2);

s.a.s.a.n
جمعه 04 بهمن 1392, 19:02 عصر
مقدمه:
تمام اطلاعات در کامپیوتر در واحد بایت ذخیره می شود
و هر بایت میتونه مقادیر 0 تا 255 را داشته باشد
و بایت را در سی شارپ با byte نمایش میدهند.

شما میتونید مسیر فایل مورد نظرتان را توسط OpenFileDialog بگیرید
و سپس مسیرتان را توسط این تابع به آرایه ای از بایتها تبدیل کنید
/************Convert file to byte array***************/
/// <summary>
/// Function to get byte array from a file
/// </summary>
/// <param name="_FileName">File name to get byte array</param>
/// <returns>Byte Array</returns>
public byte[] FileToByteArray(string _FileName)
{
byte[] _Buffer = null;

try
{
// Open file for reading
System.IO.FileStream _FileStream = new System.IO.FileStream(_FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);

// attach filestream to binary reader
System.IO.BinaryReader _BinaryReader = new System.IO.BinaryReader(_FileStream);

// get total byte length of the file
long _TotalBytes = new System.IO.FileInfo(_FileName).Length;

// read entire file into buffer
_Buffer = _BinaryReader.ReadBytes((Int32)_TotalBytes);

// close file reader
_FileStream.Close();
_FileStream.Dispose();
_BinaryReader.Close();
}
catch (Exception _Exception)
{
// Error
Console.WriteLine("Exception caught in process: {0}", _Exception.ToString());
}

return _Buffer;
}

برای تبدیل بایت به باینری هم میتونید از این اسنیپت استفاده کنید

byte b = 45;
//Will be "101101"
var bitstring = Convert.ToString(b, 2);







خیلی ممنون از راهنماییتون . فقط چند تا سوال دارم . یکیش این که file name که مسیره و string درست ؟ اما نمیدونم System.IO.FileMode.Open, System.IO.FileAccess.Read قراره چی باشه . میشه کمک کنید ؟