ความสุขของแฮกเกอร์
Hacker's Delight ฉบับพิมพ์ครั้งแรก (2002) | |
| ผู้เขียน | เฮนรี เอส. วอร์เรน จูเนียร์ |
|---|---|
| ภาษา | ภาษาอังกฤษ |
| สำนักพิมพ์ | แอดดิสัน-เวสลีย์ มืออาชีพ |
| วันที่เผยแพร่ | 2002 |
| สถานที่ตีพิมพ์ | สหรัฐอเมริกา |
| หน้า | 306 (ฉบับพิมพ์ครั้งแรก) , 494 (ฉบับพิมพ์ครั้งที่สอง) |
| ISBN | 0201914654(ฉบับพิมพ์ครั้งที่สอง)0321842685) |
| คลาส LC | QA76.6.W375 |
Hacker's Delightเป็นหนังสือเกี่ยวกับอัลกอริทึมซอฟต์แวร์ เขียนโดย Henry S. Warren, Jr. ตีพิมพ์ครั้งแรกในปี 2002 หนังสือเล่มนี้นำเสนออัลกอริทึม การคำนวณ ระดับบิตและระดับต่ำที่รวดเร็วสำหรับงานทั่วไป เช่นการนับบิตหรือการเพิ่มความเร็วในการหารโดยใช้การคูณ
พื้นหลัง
ผู้เขียนซึ่งเป็นนักวิจัยของ IBM ที่ทำงานเกี่ยวกับระบบต่างๆ ตั้งแต่IBM 704ไปจนถึงPowerPC [ 1 ] ได้รวบรวมสิ่งที่เขาเรียกว่า "เทคนิคการเขียนโปรแกรม" ตลอดอาชีพการงานของเขา เทคนิคเหล่านี้เกี่ยวข้องกับการจัดการสตริงบิตและตัวเลขระดับต่ำอย่างมีประสิทธิภาพ ตามคำนำของหนังสือโดยGuy L. Steeleกลุ่มเป้าหมายได้แก่ ผู้เขียน คอมไพเลอร์และผู้ที่เขียนโค้ดประสิทธิภาพสูง
สรุป
ตัวอย่างการเขียนโปรแกรมเขียนด้วยภาษาซีและภาษาแอสเซมบลีสำหรับ สถาปัตยกรรม RISCซึ่งคล้ายคลึงกัน แต่ไม่เหมือนกับPowerPCอัลกอริทึมจะแสดงเป็นสูตรสำหรับจำนวนบิตใดๆ โดยตัวอย่างส่วนใหญ่จะใช้สำหรับ 32 บิต
นอกเหนือจากบทนำแล้ว บทต่างๆ ในหนังสือเล่มนี้เป็นอิสระต่อกัน โดยแต่ละบทจะเน้นไปที่หัวข้อเฉพาะเรื่อง อัลกอริทึมหลายอย่างในหนังสือเล่มนี้อาศัยจำนวนเต็มแบบ ทูคอม พลีเมนต์
เนื้อหาของหนังสือฉบับพิมพ์ครั้งที่สอง[ 1 ]ประกอบด้วยอัลกอริทึมสำหรับ
- อัลกอริทึมพื้นฐานสำหรับการจัดการบิตแต่ละบิต สูตรสำหรับเอกลักษณ์ อสมการ การตรวจจับการล้นสำหรับการดำเนินการทางคณิตศาสตร์ และการเลื่อนบิต
- การปัดเศษขึ้นและลงให้เป็นพหุคูณของเลขยกกำลังสอง ที่ทราบแล้ว เลขยกกำลังสองถัดไป และสำหรับการตรวจจับว่าการดำเนินการข้ามขอบเขตเลขยกกำลังสองหรือไม่
- การตรวจสอบขอบเขต
- นับรวม เลข ศูนย์ทั้งหมด เลข ศูนย์นำหน้าและเลขศูนย์ต่อท้าย
- กำลังค้นหาสตริงบิต
- การเรียงสับเปลี่ยนของบิตและไบต์ในคำหนึ่งคำ
- อัลกอริทึมซอฟต์แวร์สำหรับการคูณ
- การหารจำนวนเต็ม
- การหารจำนวนเต็มอย่างมีประสิทธิภาพและการคำนวณเศษเหลือเมื่อทราบตัวหาร
- ราก ที่สองและรากที่สามของจำนวนเต็ม
- ระบบตัวเลขที่ไม่ธรรมดา รวมถึงฐาน −2
- การแปลงค่าระหว่างเลขทศนิยมและเลขจำนวนเต็ม
- การตรวจสอบความซ้ำซ้อนแบบวนรอบ , รหัสแก้ไขข้อผิดพลาดและรหัสเกรย์
- เส้นโค้งฮิลเบิร์ตรวมถึงการอภิปรายเกี่ยวกับการประยุกต์ใช้
สไตล์
รูปแบบการเขียนคล้ายกับตำราคณิตศาสตร์ที่ไม่เป็นทางการ มีการใช้สูตรอย่างกว้างขวาง มี การพิสูจน์ทางคณิตศาสตร์สำหรับอัลกอริทึมที่ไม่ชัดเจนบางอย่าง แต่ไม่ใช่จุดเน้นหลักของหนังสือเล่มนี้
แผนกต้อนรับ
การตอบรับโดยรวมเป็นไปในเชิงบวก[ 2 ] [ 3 ]
ประวัติการตีพิมพ์
หนังสือเล่มนี้ได้รับการตีพิมพ์โดยAddison-Wesley Professionalฉบับพิมพ์ครั้งแรกวางจำหน่ายในปี 2545 [ 4 ]และฉบับพิมพ์ครั้งที่สองในปี 2556 [ 1 ] ฉบับภาษาญี่ปุ่นของหนังสือเล่มนี้ได้รับการตีพิมพ์โดย SIBaccess Co. Ltd. ในปี 2547
ดูเพิ่มเติม
อ่านเพิ่มเติม
- Beeler, Michael; Gosper, Ralph William ; Schroeppel, Richard C. (เมษายน 1995) [29 กุมภาพันธ์ 1972]. "บันทึกปัญญาประดิษฐ์ฉบับที่ 239"ในBaker, Henry Givens Jr. (บรรณาธิการ). HAKMEM (ฉบับพิมพ์ใหม่และแปลง). เคมบริดจ์ รัฐแมสซาชูเซตส์ สหรัฐอเมริกา: ห้องปฏิบัติการปัญญาประดิษฐ์สถาบันเทคโนโลยีแมสซาชูเซตส์ (MIT). เก็บถาวรจากต้นฉบับเมื่อ 8 ตุลาคม 2019. สืบค้นเมื่อ2 มกราคม 2016 .
- Jones, Douglas W. (10 กันยายน 2014) [1999]. "คู่มือการเรียนเลขคณิต" . ไอโอวาซิตี, ไอโอวา, สหรัฐอเมริกา: มหาวิทยาลัยไอโอวา, ภาควิชาวิทยาการคอมพิวเตอร์. เก็บถาวรจากต้นฉบับเมื่อ 10 กรกฎาคม 2019. สืบค้นเมื่อ3 มกราคม 2016 .
- Cowlishaw, Mike F. (2015) [1981, 2008]. "เลขคณิตทศนิยมทั่วไป" . เก็บถาวรจากต้นฉบับเมื่อ 2 พฤศจิกายน 2019 . สืบค้นเมื่อ2 มกราคม 2016 .
- Ingenoso, Tony (1999-02-03) [1998]. "บทที่ 11 - เทคนิคเพิ่มเติมในโค้ด C และ Assembler". การทำให้โค้ดทำงานได้ดีขึ้น - วิธีลดขนาดโค้ด 80x86 และบางครั้งก็ทำให้เร็วขึ้น (อีบุ๊ก). เก็บถาวรจากต้นฉบับเมื่อ 2019-11-18 . เรียกดูเมื่อ2019-11-18 .
- Anderson, Sean Eron, บรรณาธิการ (2009-11-26) [1997]. "Bit Twiddling Hacks"มหาวิทยาลัยสแตนฟอร์ดเก็บถาวรจากต้นฉบับเมื่อ 2020-06-01 สืบค้นเมื่อ2020-06-01
ลิงก์ภายนอก
- เว็บไซต์ Archive of Hacker's Delight