herm1t LIVE!ng room - Погромисты [entries|archive|friends|userinfo]
herm1t

[ website | twilight corner in the herm1t's cave ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Погромисты [Jun. 9th, 2011|09:52 am]
Previous Entry Add to Memories Tell A Friend Next Entry
LinkLeave a comment

Comments:
From:[info]qulinxao
Date:June 9th, 2011 - 03:40 pm

схоластика на трудах создателей

(Link)
из http://golang.org/src/pkg/fmt/scan.go
799 // hexDigit returns the value of the hexadecimal digit
800 func (s *ss) hexDigit(digit int) int {
801 switch digit {
802 case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
803 return digit - '0'
804 case 'a', 'b', 'c', 'd', 'e', 'f':
805 return 10 + digit - 'a'
806 case 'A', 'B', 'C', 'D', 'E', 'F':
807 return 10 + digit - 'A'
808 }
809 s.errorString("Scan: illegal hex digit")
810 return 0
811 }

сырцы исходного С Кена дабудетмониторв2колонки Томпсона где та
так что мона предположить что на Ся это как то так :
int hexdigit(int digit){
switch(digit){
case '0': case '1': case '2': case '3':
case '4': case '5': case '6': case '7':
case '8': case '9': return digit - '0';
case 'a': case 'b': case 'c': case 'd':
case 'e': case 'f': return 10 + digit - 'a';
case 'A': case 'B': case 'C': case 'D':
case 'E': case 'F': return 10 + digit - 'A';
}
return -1;
} // очевидное?!

[User Picture]
From:[info]herm1t
Date:June 10th, 2011 - 08:37 am

Re: схоластика на трудах создателей

(Link)
> // очевидное?!
Очевидное, это:
char (а лучше int) ishex[256] = {
[0 ... 255] = -1,
[0x30] = 0,1,2,3,4,5,6,7,8,9,
[0x41] = 10,11,12,13,14,15,
[0x61] = 10,11,12,13,14,15,
};
(если нужна скорость).
Если нужна читаемость, то if (c >= '0' "ну, ты понЕл"...
А поучительное вам покажут gcc -Os и objdump -d.

P.S. ishexdigit, я полагаю, исчерпан? Может быть перейдем к strlen() и вы сюда насыпете еще ссылок на св. св. Кена, Денниса, Брайана и Роба? (Никого не забыл?) :-)))
From:[info]qulinxao
Date:June 10th, 2011 - 01:04 pm

ну вот конвеер то форд изобрёл

(Link)
его конвеерство Дуг МакИлрой с его вертикальной палкой

для закругления http://ru.wikipedia.org/wiki/Философия_UNIX

ну и конечно :
Настоящие(первоночальные) открытия-докозательства-творения редко бывают элегантными.