ไม่มีเรื่องไร้สาระอีกต่อไป! ! ! ไปถึงจุด. ก่อนอื่นมาทำความเข้าใจก่อนว่าเลขฐานสิบหกคืออะไร
ชื่อภาษาอังกฤษ: ระบบเลขฐานสิบหกเป็นวิธีการแสดงข้อมูลในคอมพิวเตอร์ ทำไมเราต้องมีฐานแปดและเลขฐานสิบหก? ในการเขียนโปรแกรม เรามักจะใช้ระบบทศนิยม... อย่างไรก็ตาม C/C++ เป็นภาษาระดับสูง ตัวอย่างเช่น: int a = 100, b = 99; อย่างไรก็ตาม เนื่องจากในที่สุดการแสดงข้อมูลในคอมพิวเตอร์ก็มีอยู่ในรูปแบบไบนารี่ บางครั้งการใช้ไบนารี่ก็สามารถแก้ปัญหาได้อย่างเป็นธรรมชาติมากขึ้น แต่เลขฐานสองยาวเกินไป ตัวอย่างเช่น ประเภท int มีขนาด 4 ไบต์และ 32 บิต ตัวอย่างเช่น 100 ซึ่งแสดงเป็นเลขฐานสองประเภท int จะเป็น: 0000 0000 0000 0000 0110 0100 ไม่มีใครอยากคิดหรือดำเนินการเมื่อเผชิญกับตัวเลขที่ยาวขนาดนี้ ดังนั้น C และ C++ จึงไม่มีวิธีการเขียนเลขฐานสองลงในโค้ดโดยตรง ปัญหานี้สามารถแก้ไขได้โดยใช้เลขฐานสิบหกหรือฐานแปด เพราะยิ่งฐานมีขนาดใหญ่ ความยาวนิพจน์ของตัวเลขก็จะยิ่งสั้นลง แต่เหตุใดจึงเป็นระบบฐาน 16 หรือฐาน 8 ไม่ใช่ระบบอื่น เช่น ระบบฐาน 9 หรือฐาน 20 2, 8 และ 16 คือ ยกกำลัง 1, ยกกำลัง 3 และยกกำลัง 4 ของ 2 ตามลำดับ ทำให้การแปลงระหว่างฐานทั้งสามนั้นตรงไปตรงมามาก ระบบฐานแปดหรือฐานสิบหกทำให้เลขฐานสองสั้นลง แต่ยังคงลักษณะการแสดงออกของเลขฐานสองไว้ แตกต่างจากรูปแบบทศนิยมรายวันของเรา เลขฐานสิบหกเป็นระบบการนับตาม 16 โดยใช้ตัวเลข 0 ถึง 9 และตัวอักษร a ถึง f (หรือ AF ใหญ่) เพื่อแทน 10 ถึง 15 (A=10, B=11, C=12, D=13, E=14, F=15) เรามาพูดถึงระบบทศนิยมที่เรามักใช้กันก่อน นับ 0 ถึง 9 ก้าวหน้า 1 ถึง 10 เมื่อถึงเลข 10 แล้วนับ 11, 12... เด็กทุกวัยก็สามารถเข้าใจระบบทศนิยมได้! ฮ่า~ เช่นเดียวกับระบบเลขฐานสิบหก เรานับ 0 ถึง 1, 2, 3...A, B...F. เมื่อนับถึง F (นั่นคือเวลาที่นับครั้งที่ 16) ก้าวไปข้างหน้าคือ 10 แล้วตัวเลขคือ 11, 12, 13...18, 19, 1A, 1B...และนับแบบนี้ ทุกๆ 16 ก้าวไปข้างหน้า! นี่คือตัวอย่างคำถาม: (199) การแปลงจากทศนิยมเป็นเลขฐานสิบหกคืออะไร? คำตอบ: C7 ใช้วิธี "หารด้วย 16 แล้วหาเศษ" หาร 199 ด้วย 16 จะได้ 12 เศษ 7 เศษคือเลขตัวแรก (เลขจากทางขวา) 12 = C คือเลขตัวที่สอง จึงได้ C7 คุณเข้าใจไหม? ลองแปลง 5621, 5621 หารด้วย 16 = ผลหาร 351 เศษ 5, นำเศษ 5 เป็นเลขตัวแรก, 351 หารด้วย 16 = ผลหาร 21 เศษ 15, นำเศษ 15 = F เป็นเลขตัวที่สอง, 21 หารด้วย 16 = ผลหาร 1 มีจำนวนเศษเป็น 5 และเศษ 5 นำมาเป็นเลขตัวที่สาม ถ้าผลหาร 1 น้อยกว่า 16 ก็ไม่ต้องหารอีกต่อไปแล้วให้ถือว่าเป็นเลขสี่ ดังนั้น ผลลัพธ์ของการแปลง 5621 เป็นเลขฐานสิบหกคือ 15F5 ลอง 3599 อีกครั้ง โดย 3599 หารด้วย 16 = ผลหาร 224 เศษ 15 นำเศษ 15 = F เป็นเลขตัวแรก 224 หารด้วย 16 = ผลหาร 14 เศษ 0 นำเศษ 0 เป็นเลขตัวที่สอง ผลหาร 14 น้อยกว่า 16 ให้เป็นเลขตัวที่สาม ดังนั้นผลลัพธ์ที่ได้คือ E0F หากคุณพบว่ายุ่งยาก คุณสามารถใช้ซอฟต์แวร์ในการแปลง ซึ่งสะดวก รวดเร็ว และแม่นยำ เลขฐานสิบหกสามารถแทนภาษาต่างๆ ได้ เช่น ภาษาอังกฤษ A = 41, B = 42, C = 43, D = 44... a = 61, b = 62, c = 63, d = 64... ภาษาจีนต้องใช้ชุดค่าผสม 3 ไบต์ เรา = e68891 e4bbac, จีน = e6b189 e58c96 สิ่งเหล่านี้ไม่สามารถคำนวณได้ ดังนั้นจึงจำเป็นต้องมีเครื่องมือในการแปลง!
เริ่มการสอน; เครื่องมือภาษาจีน CE และ บทช่วยสอนการใช้ CE ขั้นแรกให้ใช้ UC เพื่อดาวน์โหลดเกม เปิด MC และแยกเกมไปยังโฟลเดอร์ใหม่ (สำหรับรายละเอียด โปรดดูบทที่ 1: การทำให้คลาสเป็นภาษาจีน) ออกจาก MC ให้ความสนใจที่นี่ โดยทั่วไป ชุดภาษาของเกมหลายภาษาจะถูกจัดเก็บไว้ในโฟลเดอร์ lang หรือ txt (มองหาชุดภาษาที่เกี่ยวข้องด้วยตัวคุณเอง 3D Air Combat อยู่ในโฟลเดอร์ txt) เปิดโฟลเดอร์แล้วคุณจะเห็นว่าทุกภาษาถูกจัดเก็บในรูปแบบ txt เราเลือกภาษาอังกฤษเป็นภาษาจีน และใช้ตัวแก้ไขชั้นเรียนเพื่อเปิดชุดภาษา เราสามารถคลิกปุ่ม "0" เพื่อสลับหน้าจอเป็นโหมดการแสดงผลเลขฐานสิบหก โอเค คุณจะเห็นว่ามี MAIN ในหน้าต่างด้านขวา เมนูใช่ไหม? มีเลข 09 ทางด้านซ้าย ซึ่งหมายความว่ามีอักขระที่ถูกต้องเก้าตัวหลังคำภาษาอังกฤษนี้ (ไม่สำคัญว่าคุณจะไม่เข้าใจจะมีคำอธิบายในภายหลัง) นั่นหมายความว่าเมนูหลักประกอบด้วยรหัสฐานสิบหกเก้ากลุ่ม คุณจะถามฉันว่าฉันจะแปลงเป็นเมนูหลักของภาษาจีนได้อย่างไร? ไม่ต้องกังวล ก่อนอื่นให้กดปุ่ม "5" เพื่อเปิดเมนูการทำงานของซอฟต์แวร์และเลือกค้นหา Conversion คุณเห็นมันไหม? คุณเพียงแค่ต้องป้อน "เมนูหลัก" ในคอลัมน์อักขระแล้วกด "แปลง" เพื่อรับรหัสเลขฐานสิบหกและรหัสทศนิยมของอักขระ คัดลอกรหัสเหล่านี้ออกเป็นกลุ่มละสองหลัก เก้ากลุ่มพอดี กลับไปที่หน้าเลขฐานสิบหกแล้วกด "5" "เลขฐานสิบหก" สำหรับกลุ่มเลขฐานสิบหกเก้ากลุ่มหลัง 09 "แทนที่รหัสเก้าชุดที่คุณแปลงด้วยวิธี โอเค เมนูหลักนี้เสร็จสิ้นเป็นภาษาจีน... มาต่อกัน... อันถัดไปคือ "STAR" ซึ่งขึ้นต้นด้วย 05 เป็นเลขฐานสิบหก น่าเบื่อ ต้องมีบางอย่างผิดปกติระหว่างการแปลง "STAR" ในภาษาจีนหมายถึง "เริ่มต้น" และมีอักขระหกชุดหลังการแปลง! แต่ห้าชุดเดิมยังไม่เพียงพอที่จะแทนที่ได้ เอ๊ะ อย่าเพิ่งพูดถึงเวอร์ชั่นภาษาจีนเลย... เรามาจำขั้นตอนการแคร็กเกมกันดีกว่า เรามาเพิ่ม 10086 หลัง sms:// แล้วเราต้องเปลี่ยนจุดก่อน sms เป็นเลขฐานสิบหกแล้วเปลี่ยนเป็น 0B ไหม ไม่เช่นนั้น เรามาอธิบายหลักการนี้กันดีกว่า มีอักขระสิบหกตัวใช่ไหม จาก 0 ถึง 9 A=10B=11C=12D=13E=14F=15 มีตัวเลขสิบหกชนิดตั้งแต่ 0 ถึง 15 คุณจะเห็นว่าเมื่อคุณถอดรหัสเกมปรากฎว่าจุดคือ "06" ซึ่งหมายความว่ามีอักขระที่ถูกต้อง 6 ตัวหลังจุด sms:/ / จากนั้นหลังจากเพิ่มอักขระห้าตัว 10086 จะมีอักขระสิบเอ็ดตัว 11. ถ้าคุณเปลี่ยนเป็น 0B แสดงว่าประกอบด้วยอักขระที่ถูกต้อง 11 ตัว นั่นคือ sms: //10086 เข้าใจไหม โอเค กลับไปที่หลักสูตรภาษาจีนกัน! ในทำนองเดียวกัน ให้เปลี่ยน 05 เป็น 06 แล้วใส่อักขระที่ส่วนท้ายแล้วเขียนหนึ่งตัว คุณแปลงแล้ว! เอาล่ะ มาบันทึกมันก่อนเพื่อดูเอฟเฟกต์ กด "ซอฟต์แวร์ซ้าย" แล้วเลือกบันทึก จากนั้นใช้มินิคอมมานเดอร์เพื่อจัดแพ็คเกจและแทนที่ ติดตั้งเกม... ตกลงไหม หลังจากอ่านข้อความนี้แล้ว จริงๆ แล้ว เลขฐานสิบหกนั้นเข้าใจได้ไม่ยาก ตราบใดที่คุณคิดให้รอบคอบและคิดให้รอบคอบ คุณจะเข้าใจมัน! C0, D0, E0, F0 เนื่องจากเป็นเลขฐานสิบหก จึงเป็น 16, 16 คือ 10, 17 คือ 11 และอื่นๆ)
S40 [ภาษาจีน] การสอนเกม บทที่ 3: ภาษาจีนเลขฐานสิบหก
ตอบกลับ (23)
สุดยอด!!!!
เจ้าของโพสต์เป็นพุทธหรือเปล่า? ลึกซึ้งมาก…
ในเครือข่าย Ai ก็มีเพียงไม่กี่คนที่เข้าใจเลขฐานสิบหก…
นี่คือการที่ฉันรวมสองโพสต์เข้าด้วยกัน ส่วนแรกเขียนโดยผู้เชี่ยวชาญการแปลภาษาจีนของทีมแปลสีน้ำเงิน ส่วนท้ายคือบทเรียนการแปลภาษาจีนของ S40 ฉันได้ทำการแก้ไขบางส่วน!
จริงๆ แล้วถ้าแค่แปลเกมเป็นภาษาจีนก็แค่เข้าใจความหมายของเลขฐานสิบหกก็พอ ไม่จำเป็นต้องเข้าใจลึก เพราะเรื่องนี้ค่อนข้างซับซ้อน~
ในเว็บไซต์มีคนอยู่แค่สองประเภท คือคนที่เข้าใจเลขฐานสองกับคนที่ไม่เข้าใจเลขฐานสอง
ตอนปีสองเราคือเรียนการออกแบบเว็บ HTTP ของคอมพิวเตอร์ เวลาว่างก็เรียนตัวเลขฐาน ค่อนข้างง่าย สิ่งนี้เรียนก็เข้าใจเลย~ฮ่าฮ่า
สุดยอด! เจ้าของกระทู้เก่งมาก!
เลขฐานสองยุ่งยากเกินไป... เลขฐานสิบหกก็ยังต้องคำนวณ...
เราจะเข้าคลาสไหนก่อนดีที่มีเยอะแยะขนาดนี้?
เจ้าของกระทู้ บทแรกอยู่ที่ไหน?
ฉันช่วยคุณตอบ ใน JAVA, โซนเกม Symbian, คลิกส่วนไฮไลต์
ขอบคุณ! ฉันหาพบแล้ว! เมื่อครู่ฉันเข้าไปในคลาส ข้อมูลที่อ่านไม่ออกมีหลายแท่งยาวหรือไม่? และยังพบว่ามีหลายสิ่งที่เหมือนกันอยู่ข้างใน! เช่น (Ljava/lang/String;) สิ่งนี้มีหลายอัน! อย่างอื่นก็เหมือนกัน!
ส่วนตัวคิดว่าบทที่สามนี้เป็นการแปลข้อความรูปแบบอื่นเป็นภาษาจีน การแปล class ให้ดูตัวอย่างบทที่หนึ่ง พูดถึงเรื่องนี้ เจ้าของกระทู้อาจลืมโพสต์นี้
คุณทำให้เป็นภาษาจีนได้ไหม แนะนำ一下!
ก็แค่รู้แค่นิดหน่อย
แล้วคุณรู้ไหมว่าทำไม ในข้อความที่เป็นรหัสขยะถึงมีภาษาอังกฤษเหมือนกันเยอะ ๆ ??
อันนั้นอย่าแก้ไขมั่วนะ มันจะผิดพลาด!
ฮี่ๆ ฉันค้นพบเรื่องนี้แล้ว แถมขอถามหน่อย เปิด class แล้ว คนที่มี/ ทุกคนสามารถไม่สนใจได้ และ อีกอย่าง มีเฉพาะตัวที่แสดงจำนวนตัวอักษรที่ถูกต้องด้านหน้าเท่านั้นที่สามารถแก้ไขได้!
เอาไว้เรียนคลาสให้เก่งก่อนนะ…
โหลดคำตอบเพิ่มเติม