เป็นที่สุดของคุณอาจจะรู้ (ไบต์แอดเดรส) ความทรงจำฮาร์ดแวร์สามารถแบ่งออกเป็นสองประเภท - น้อย endianและbig- ในความทรงจำเล็ก ๆ น้อย ๆ bytes จะถูกกำหนดหมายเลขเริ่มต้นด้วย 0 ที่จุดสิ้นสุด (สำคัญน้อยที่สุด) และในทางกลับกันขนาดใหญ่
ข้อเท็จจริงที่สนุกสนาน : ข้อตกลงนี้มีพื้นฐานมาจากหนังสือGulliver's Travels ของJonathan Swiftที่ซึ่งกษัตริย์ Lilliputian สั่งให้ประชาชนของเขาทำลายไข่ของพวกเขาในตอนจบเล็ก ๆ
การแลกเปลี่ยนทำงานอย่างไร
สมมติว่าเรามีจำนวนเต็มไม่ได้ลงนาม (32 บิต) 12648430
ในหน่วยความจำในเครื่องขนาดใหญ่ที่อาจมีลักษณะดังนี้:
addr: 0 1 2 3
memory: 00 C0 FF EE
โดยการกลับคำสั่ง byte เราได้รับจำนวนเต็มฐานสิบหก0xEEFFC000
ซึ่งเป็น4009738240
ทศนิยม
งานของคุณ
เขียนโปรแกรม / ฟังก์ชั่นที่ได้รับจำนวนเต็ม 32 บิตที่ไม่ได้ลงนามเป็นทศนิยมและส่งออกจำนวนเต็มผลลัพธ์เมื่อสลับ endianness ตามที่อธิบายไว้ข้างต้น
กฎระเบียบ
- ข้อมูลที่ป้อนจะอยู่ในช่วง
0
ถึง4294967295
- สามารถพิมพ์เอาต์พุตไปที่ STDOUT (ลากขึ้นบรรทัดใหม่ / เว้นช่องว่างได้) หรือส่งคืน
- อินพุตและเอาต์พุตเป็นทศนิยม
- พฤติกรรมของอินพุตที่ไม่ถูกต้องนั้นไม่มีการกำหนด
กรณีทดสอบ
0 -> 0
1 -> 16777216
42 -> 704643072
128 -> 2147483648
12648430 -> 4009738240
16885952 -> 3232235777
704643072 -> 42
3735928559 -> 4022250974
4009738240 -> 12648430
4026531839 -> 4294967279
4294967295 -> 4294967295
42
จะได้รับเป็นทศนิยม แต่ในทางเทคนิคแล้วมันจะอยู่ในรูปแบบไบนารีใน C คุณสามารถพิมพ์ประเภทของหลักสูตร0x2a
สิ่งที่ฉันต้องการป้องกันคือการป้อนข้อมูลเป็นสตริงเช่น"2a"
หรือไม่ชอบ