Needed to do this recently on a tool, pasting here as it may be useful for others too:

StringBuilder builder = new StringBuilder();
uint address = 3232236232;
long bitCheck = 0;
for (int i = 0; i < 32; i++)
{
bitCheck = ((long)1 << i);
if ((address & bitCheck) == bitCheck)
builder.Append("1");
else
builder.Append("0");
}
long bitCheck2 = 0;
int[] octets = new int[4];
for (int i = 0; i < 32; i++)
{
bitCheck2 = ((long)1 << (i%8));
octets[i / 8] += (int)(Convert.ToInt64(builder[i].ToString()) * bitCheck2);
}
txt.Text +=
octets[3].ToString() + "." +
octets[2].ToString() + "." +
octets[1].ToString() + "." +
octets[0].ToString();