|
![]() |
|||
|
||||
Overview"A collection useful programming advice the author has collected over the years; small algorithms that make the programmer's task easier. At long last, proven short-cuts to mastering difficult aspects of computer programming Learn to program at a more advanced level than is generally taught in schools and training courses, and much more advanced than can be learned through individual study/experience. An instant cult classic for programmers! Computer programmers are often referred to as hackers -- solitary problem solvers engrossed in a world of code as they seek elegant solutions to building better software. While many view these unique individuals as ""madmen,"" the truth is that much of the computer programmer's job involves a healthy mix of arithmetic and logic. In Hacker's Delight, veteran programmer Hank Warren shares the collected wisdom -- namely tips and tricks -- from his considerable experience in the world of application development. The resulting work is an irresistible collection that will help even the most seasoned programmers better their craft. Henry S. Warren Jr. has had a 40-year career with IBM, spanning the computer field from the IBM 704 to PowerPC. He has worked on various military command and control systems, and on the SETL project under Jack Schwartz at NYU. Since 1973 he has been in IBM's Research Division at Yorktown Heights, New York. Here he has done compiler and computer architecture work on the 801 computer and its several variants through PowerPC. Presently he is working on the Blue Gene petaflop computer project. He received his Ph.D. in Computer Science from the Courant Institute at New York University in 1980." Full Product DetailsAuthor: Henry S. WarrenPublisher: Pearson Education (US) Imprint: Addison Wesley Dimensions: Width: 23.80cm , Height: 2.30cm , Length: 16.90cm Weight: 0.592kg ISBN: 9780201914658ISBN 10: 0201914654 Pages: 320 Publication Date: 05 August 2002 Audience: College/higher education , Tertiary & Higher Education Replaced By: 9780321842688 Format: Hardback Publisher's Status: Out of Print Availability: In Print ![]() Limited stock is available. It will be ordered for you and shipped pending supplier's limited stock. Table of ContentsPreface. 1. Introduction. Notation. Instruction Set and Execution Time Model. 2. Basis. Manipulating Rightmost Bits. Addition Combined with Logical Operations. Inequalities among Logical and Arithmetic Expressions. Absolute Value Function. Sign Extension. Shift Right Signed from Unsigned. Sign Function. Three-Valued Compare. Transfer of Sign. Decoding a “Zero Means 2**n” Field. Comparison Predicates. Overflow Detection. Condition Code Result of Add, Subtract, and Multiply. Rotate Shifts. Double-Length Add/Subtract. Double-Length Shifts. Multibyte Add, Subtract, Absolute Value. Doz, Max, Min. Exchanging Registers. Alternating among Two or More Values. 3. Power-of-2 Boundaries. Rounding Up/Down to a Multiple of a Known Power of 2. Rounding Up/Down to the Next Power of 2. Detecting a Power-of-2 Boundary Crossing. 4. Arithmetic Bounds. Checking Bounds of Integers. Propagating Bounds through Adds and Subtracts. Propagating Bounds through Logical Operations. Signed Bounds. 5. Counting Bits. Counting 1-bits. Parity. Counting Leading 0's. Counting Trailing 0's. 6. Searching Words. Find First 0-Byte. Find First String of 1-Bits of a Given Length. 7. Rearranging Bits and Bytes. Reversing Bits and Bytes. Shuffling Bits. Transposing a Bit Matrix. Compress, or Generalized Extract. General Permutations, Sheep and Goats Operation. Rearrangements and Index Transformations. 8. Multiplication. Multiword Multiplication. High-Order Half of 64-Bit Product. High-Order Product Signed from/to Unsigned. Multiplication by Constants. 9. Integer Division. Preliminaries. Multiword Division. Unsigned Short Division from Signed Division. Unsigned Long Division. 10. Integer Division by Constants. Signed Division by a Known Power of 2. Signed Remainder from Division by a Known Power of 2. Signed Division and Remainder by Non-powers of 2. Signed Division by Divisors >= 2. Signed Division by Divisors #= -2. Incorporation into a Compiler. Miscellaneous Topics. Unsigned Division. Unsigned Division by Divisors >= 1. Incorporation into a Compiler (Unsigned). Miscellaneous Topics (Unsigned). Applicability to Modulus and Floor Division. Similar Methods. Sample Magic Numbers. Exact Division by Constants. Test for Zero Remainder after Division by a Constant. 11. Some Elementary Functions. Integer Square Root. Integer Cube Root. Integer Exponentiation. Integer Logarithm. 12. Unusual Bases for Number Systems. Base -2. Base -1 + i. Other Bases. What is the Most Efficient Base? 13. Gray Code. Gray Code. Incrementing a Gray Coded Integer. Negabinary Gray Code. Brief History and Applications. 14. Hilbert's Curve. A Recursive Algorithm for Generating the Hilbert Curve. Coordinates from Distance along the Hilbert Curve. Distance from Coordinates on the Hilbert Curve. Incrementing the Coordinates on the Hilbert Curve. Non-recursive Generating Algorithms. Other Space-Filling Curves. Applications. 15. Floating-Point. IEEE Format. Comparing Floating-Point Numbers Using Integer Operations. The Distribution of Leading Digits. Table of Miscellaneous Values. 16. Formulas for Primes. Introduction. Willans's Formulas. Wormell's Formula. Formulas for Other Difficult Functions. Appendix A. Arithmetic Tables for a 4-Bit Machine. Appendix B. Newton's Method. Bibliography. Index. 0201914654T08282002ReviewsAuthor InformationHenry S. Warren, Jr., has had a forty-year career with IBM, spanning from the IBM 704 to the PowerPC. He has worked on various military command and control systems and on the SETL project under Jack Schwartz at New York University. Since 1973 he has been with IBM's Research Division, focusing on compilers and computer architectures. Hank currently works on the Blue Gene petaflop computer project. He received his Ph.D. in computer science from the Courant Institute at New York University. 0201914654AB06272002 Tab Content 6Author Website:Countries AvailableAll regions |