| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 ---------------- 
		
			
	 | 
	
	
	
		
		
			
			
			int2hex
			 
			
			Помнится, нужен мне был 16-ричный код числа, а стандартная ф-ция не понимала отрицательные числа.. пришлось править 
		
		
		
		
		
		
		
	PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно немного упростить этот метод 
		
		
		
		
		
		
		
		
			X++: #DEFINE.HEXDIGITS('0123456789ABCDEF') static str 12 int2Hex(int iValue, int digits = 0 ) { str 12 result = ''; ; if (iValue < 0) { digits = 8; } while (iValue != 0) { result = subStr(#HEXDIGITS, iValue & 0xF + 1, 1) + result; iValue = iValue >> 4; if (iValue == -1 && strLen(result) == digits) { break; } } result = strRep('0', digits - strLen(result)) + result; return result; } Последний раз редактировалось demianimp; 29.12.2016 в 15:00. Причина: лишнее условие iValue > 0xF  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (2). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			можно еще упростить, если использовать контейнер или массив. 
		
		
		
		
		
		
		
	не факт, что это упрощение сделает код быстрее. и что-то не так с условием - если значение iValue > 0xF, то оно точно не равно 0 X++:     while (iValue > 0xF || iValue != 0) | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			И ускорить на порядок 
		
		
		
		
		
		
			X++: // Store integer 182 int intValue = 182; // Convert integer 182 as a hex in a string variable string hexValue = intValue.ToString("X"); // Convert the hex string back to the number int intAgain = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber); 
				__________________ 
		
		
		
		
	AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 |