public StructuredFloat absSmaller() {
		switch (numberType) {
		case Nan:
		case Infinite:
			return null;
		case SubNormalized: {
			if (specialValue == FloatNumberSpecialValue.MinSubNormal) {
				return new StructuredFloat(config).buildByType(negative,
						FloatNumberType.Normalized,
						FloatNumberSpecialValue.Zero);
			} else {
				return new StructuredFloat(config).buildByParts(negative,
						normalizedExp, fraction - 1);
			}
		}
		case Normalized: {
			if (specialValue == FloatNumberSpecialValue.Zero)
				return null;
			else if (fraction != 0) {
				return new StructuredFloat(config).buildByParts(negative,
						normalizedExp, fraction - 1);
			} else if (specialValue == FloatNumberSpecialValue.MinNormal) {
				return new StructuredFloat(config).buildByType(negative,
						FloatNumberType.SubNormalized,
						FloatNumberSpecialValue.MaxSubNormal);
			} else {
				return new StructuredFloat(config).buildByParts(negative,
						normalizedExp - 1, config.MaxFraction);
			}
		}
		}
		return null;

	}