Показать сообщение отдельно
Старый 19.10.2008, 15:59   #18
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,893
Вес репутации: 5611/171
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию можно ещё добавить

Цитата:
Сообщение от masterzx Посмотреть сообщение
спасибо за сылку
что подобные вычисления с xor компилятор хайтек выполняет автоматически.
например запись
Код:
  switch (seven) {
	
     case 0x7e:
       return 	(0);
     case 0x30:
       return 	(1);
     case 0x6d:
       return 	(2);
     case 0x79:
       return 	(3);
     case 0x33:
       return 	(4);
     case 0x5b:
       return 	(5);
     case 0x5f:
       return 	(6);
     case 0x70:
       return 	(7);
     case 0x7f:
      return 	(8);
     case 0x7b:
      return 	(9);
     default:
      return (' ');
 }	// case
породит код

Код:
  813                           ;met877.c: 160: switch (seven) {
   814                           ;met877.c: 162: case 0x7e:
   815                           ;met877.c: 163: return (0);
   816                           ;met877.c: 165: case 0x30:
   817                           ;met877.c: 166: return (1);
   818                           ;met877.c: 168: case 0x6d:
   819                           ;met877.c: 169: return (2);
   820                           ;met877.c: 171: case 0x79:
   821                           ;met877.c: 172: return (3);
   822                           ;met877.c: 174: case 0x33:
   823                           ;met877.c: 175: return (4);
   824                           ;met877.c: 177: case 0x5b:
   825                           ;met877.c: 178: return (5);
   826                           ;met877.c: 180: case 0x5f:
   827                           ;met877.c: 181: return (6);
   828                           ;met877.c: 183: case 0x70:
   829                           ;met877.c: 184: return (7);
   830                           ;met877.c: 186: case 0x7f:
   831                           ;met877.c: 187: return (8);
   832                           ;met877.c: 189: case 0x7b:
   833                           ;met877.c: 190: return (9);
   834                           ;met877.c: 193: default:
   835                           ;met877.c: 194: return (' ');
   836  0240  3A30               	xorlw	48
   837  0241  1903               	btfsc	3,2
   838  0242  3401               	retlw	1
   839  0243  3A03               	xorlw	3
   840  0244  1903               	btfsc	3,2
   841  0245  3404               	retlw	4
   842  0246  3A68               	xorlw	104
   843  0247  1903               	btfsc	3,2
   844  0248  3405               	retlw	5
   845  0249  3A04               	xorlw	4
   846  024A  1903               	btfsc	3,2
   847  024B  3406               	retlw	6
вот это действительно красиво (пусть красота и "машинная", но за ней стоит человек)

кстати, если входные значения для case идут подряд, то можно "подсказать" компилятору использовать метод табличного чтения
Greg вне форума   Ответить с цитированием