C #: Como converter tempo para ulong
-
22-08-2019 - |
Pergunta
Se eu tentar com BitConverter, requer uma matriz de bytes e eu não tenho that.I ter um Int32 e eu quero convertê-lo para UInt32.
Em C ++ não havia nenhum problema com isso.
Solução
Um elenco simples é tudo o que você precisa. Desde a sua possível precisão perder fazendo isso, a conversão é explícita.
long x = 10;
ulong y = (ulong)x;
Outras dicas
Tente:
Convert.ToUInt32()
Int32 i = 17;
UInt32 j = (UInt32)i;
EDIT: pergunta é claro se você tem uma longa ou um int
Dada esta função:
string test(long vLong)
{
ulong vULong = (ulong)vLong;
return string.Format("long hex: {0:X}, ulong hex: {1:X}", vLong, vULong);
}
E este uso:
string t1 = test(Int64.MinValue);
string t2 = test(Int64.MinValue + 1L);
string t3 = test(-1L);
string t4 = test(-2L);
Este será o resultado:
t1 == "long hex: 8000000000000000, ulong hex: 8000000000000000"
t2 == "long hex: 8000000000000001, ulong hex: 8000000000000001"
t3 == "long hex: FFFFFFFFFFFFFFFF, ulong hex: FFFFFFFFFFFFFFFF"
t4 == "long hex: FFFFFFFFFFFFFFFE, ulong hex: FFFFFFFFFFFFFFFE"
Como você pode ver os bits são preservados completamente, mesmo para valores negativos.
Para converter um tempo para um ulong, simplesmente lançá-lo:
long a;
ulong b = (ulong)a;
C # NÃO irá lançar uma exceção se for um número negativo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow