long number = …; // string should contain exactly 12 characters string leastSignificant48bitsOfNumberAsHex = number.ToString("????")
Вы можете сделать это с форматированием строки:
string leastSignificant48bitsOfNumberAsHex = String.Format("{0:X012}", number & 0xFFFFFFFFFFFF);
Это заполнит строку нулями, если число короче.