Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:狂fight

Posted by kansas at 2005-12-17 21:45:38
In Reply To:这个会容易看些 Posted by:frkstyc at 2005-12-17 18:57:01
> #include <stdio.h>
> #define BIT(x, n) (((x) >> (n)) & 1u)
> #define BIT1(n) (1u << (n))
> #define SET(x, n, b) (((x) & ~BIT1(n)) | ((b) << (n)))
> #define MASK(n, m) (((1u << (m)) - 1) << (n))
> #define ROR(x, n, m) (((x) & ~MASK(n, m)) | (BIT(x, n) << ((n) + (m) - 1)) | (((x) & MASK((n) + 1, (m) - 1)) >> 1))
> #define ADD(x) \
> 	do\
> 	{\
> 		(x) = ROR(x, 0, 8);\
> 		(x) = ROR(x, 16, 8);\
> 		(x) = SET(x, 25, (BIT(x, 7) & BIT(x, 23)) | (BIT(x, 7) & BIT(x, 24)) | (BIT(x, 23) & BIT(x, 24)));\
> 		(x) = SET(x, 7, BIT(x, 7) ^ BIT(x, 23) ^ BIT(x, 24));\
> 		(x) = SET(x, 24, BIT(x, 25));\
> 	}\
> 	while(0)
> #define ADD8(x) \
> 	do\
> 	{\
> 		ADD(x);\
> 		ADD(x);\
> 		ADD(x);\
> 		ADD(x);\
> 		ADD(x);\
> 		ADD(x);\
> 		ADD(x);\
> 		ADD(x);\
> 	}\
> 	while(0)
> 
> int main(void)
> {
> 	unsigned int a;
> 	scanf("%hu %hu", (unsigned short int*)&a, (unsigned short int*)&a + 1);
> 	ADD8(a);
> 	printf("%u\n", (unsigned int)*(unsigned char*)&a);
> 	return 0;
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator