System.NumberFormatter.InitDecHexDigits C# (CSharp) Méthode

InitDecHexDigits() private méthode

private InitDecHexDigits ( uint hi, ulong lo ) : void
hi uint
lo ulong
Résultat void
		private void InitDecHexDigits (uint hi, ulong lo)
		{
			if (hi == 0) {
				InitDecHexDigits (lo); // Only the lower 64 bits matter.
				return;
			}

			// Compute (hi, lo) = (hi , lo) / HundredMillion.
			uint divhi = hi / HundredMillion;
			ulong remhi = hi - divhi * HundredMillion;
			ulong divlo = lo / HundredMillion;
			ulong remlo = lo - divlo * HundredMillion + remhi * ULongModHundredMillion;
			hi = divhi;
			lo = divlo + remhi * ULongDivHundredMillion;
			divlo = remlo / HundredMillion;
			remlo -= divlo * HundredMillion;
			lo += divlo;
			_val1 = ToDecHex ((int)remlo);

			// Divide hi * 2 ^ 64 + lo by HundredMillion using the fact that
			// hi < HundredMillion.
			divlo = lo / HundredMillion;
			remlo = lo - divlo * HundredMillion;
			lo = divlo;
			if (hi != 0) {
				lo += hi * ULongDivHundredMillion;
				remlo += hi * ULongModHundredMillion;
				divlo = remlo / HundredMillion;
				lo += divlo;
				remlo -= divlo * HundredMillion;
			}
			_val2 = ToDecHex ((int)remlo);

			// Now we are left with 64 bits store in lo.
			if (lo >= HundredMillion) {
				divlo = lo / HundredMillion;
				lo -= divlo * HundredMillion;
				_val4 = ToDecHex ((int)divlo);
			}
			_val3 = ToDecHex ((int)lo);
		}

Same methods

NumberFormatter::InitDecHexDigits ( uint value ) : void
NumberFormatter::InitDecHexDigits ( ulong value ) : void