Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace C_Sharp_Dobule_To_64Bits_64Bits_To_Double
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private **** Form1_Load(object sender, EventArgs e)
{
//Orijinal olarak bir double değer yazalım.
double doubleValue = 154156.11658785;
//Double Değeri ekrana yazdıralım
lblDouble.Text = doubleValue.ToString();
//Double değeri long 64 bit değere çevirme, bu işlem için bitconveter sınıfı kullanılır
long longValue = 0;
longValue = BitConverter.DoubleToInt64Bits(doubleValue);
//Dönüştürülen 64 bit Değeri ekrana yazdıralım
lbl64BitLong.Text = longValue.ToString();
//64 bitlik datayı 8 bitlik byte data olarak ekrana yazdıralım
byte[] bytes = new byte[8];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = (byte)((longValue >> (8 * i)) & 0xFF);
}
for (int i = 0; i < bytes.Length; i++)
{
lblBytes.Text += string.Format("{0:X2} ",bytes[i]);
}
//64 bit long değeri tekrar dobule değer dönüştürme
double createdNumber = BitConverter.ToDouble(bytes, 0);
// Tekrar oluşturulan double değeri ekran yazdıralım
lblNewDouble.Text = createdNumber.ToString();
}
}
}