ข้ามไปยังเนื้อหา

เครื่องคำนวณความยาวบิตและไบต์ - เครื่องมือขนาดข้อมูลฟรี

คำนวณความยาวบิตและไบต์สำหรับตัวเลขจำนวนเต็ม สตริงเลขฐานสิบหก และข้อความด้วยการเข้ารหัส UTF-8, UTF-16, ASCII เครื่องมือออนไลน์ฟรีสำหรับนักพัฒนา นักวิทยาศาสตร์ข้อมูล และวิศวกรเครือข่าย

เครื่องคำนวณความยาวบิตและไบต์

ประเภทอินพุต
บิต
8
ไบต์
1

8 บิต = 1 ไบต์

การแสดงภาพ

ไบต์ 1
11111111
0xFF
เครื่องคำนวณโหลด...
📚

เอกสารประกอบการใช้งาน

เครื่องคำนวณความยาวบิตและไบต์คืออะไร?

เครื่องคำนวณความยาวบิตและไบต์ใช้หาจำนวนบิตและไบต์ที่ข้อมูลชิ้นหนึ่งต้องใช้ บิตคือตัวเลขฐานสองหนึ่งหลัก ได้แก่ 0 หรือ 1 ไบต์คือกลุ่มของ 8 บิต เครื่องคำนวณนี้รับจำนวนเต็ม สตริงเลขฐานสิบหก หรือสตริงข้อความ และรายงานขนาดที่แน่นอนในทั้งสองหน่วย

สิ่งนี้มีความสำคัญต่อการเขียนโปรแกรม เครือข่าย และการจัดเก็บข้อมูล คอลัมน์ฐานข้อมูล แพ็กเก็ตเครือข่าย และไฟล์บนดิสก์ล้วนมีขนาดที่วัดเป็นไบต์ และขนาดนั้นขึ้นอยู่กับวิธีเขียนข้อมูล

วิธีคำนวณความยาวบิตของจำนวนเต็ม

ความยาวบิตของจำนวนเต็มบวกคือจำนวนหลักในรูปเลขฐานสองของจำนวนนั้น ตัวอย่างเช่น 255 ในเลขฐานสองคือ 11111111 ซึ่งมี 8 หลัก ดังนั้นความยาวบิตจึงเท่ากับ 8

สูตร: สำหรับจำนวนเต็มบวก n ความยาวบิตคือจำนวนหลักในการเขียน n ในฐาน 2 กรณีพิเศษ n = 0 มีความยาวบิตเท่ากับ 1

จำนวนเต็มลบใช้ส่วนเติมเต็มสอง ซึ่งเป็นวิธีมาตรฐานที่คอมพิวเตอร์ใช้จัดเก็บจำนวนที่มีเครื่องหมาย ความยาวบิตของจำนวนเต็มลบคือจำนวนบิตน้อยที่สุดที่สามารถเก็บจำนวนนั้นในรูปส่วนเติมเต็มสองได้ ตัวอย่างเช่น −128 อยู่ใน 8 บิตได้ (ในรูป 10000000) แต่ −129 ต้องใช้ 9 บิต เพราะ 8 บิตสามารถเก็บค่าได้ต่ำสุดเพียง −128

เมื่อทราบความยาวบิตแล้ว จะหาความยาวไบต์ได้โดยปัดขึ้นเป็นจำนวนไบต์เต็มที่ใกล้ที่สุด:

ความยาวไบต์ = ⌈ความยาวบิต ÷ 8⌉

สัญลักษณ์ ⌈ ⌉ หมายถึง “ปัดขึ้น” ค่าที่มี 9 บิตยังคงต้องใช้ไบต์เต็ม 2 ไบต์ เพราะไม่สามารถแบ่งไบต์ออกเป็นส่วนย่อยได้

ตัวอย่างพร้อมวิธีทำ

จำนวนเต็มความยาวบิตความยาวไบต์
011
25581
25692
−12881
−12992
18,446,744,073,709,551,615 (2⁶⁴ − 1)648

วิธีคำนวณความยาวบิตของสตริงเลขฐานสิบหก

เลขฐานสิบหกแต่ละหลัก (0–9, A–F) แทนค่าได้เท่ากับ 4 บิตพอดี เนื่องจาก 4 บิตสามารถเก็บค่าที่เป็นไปได้ 16 ค่า

สูตร: ความยาวบิต = จำนวนหลักเลขฐานสิบหก × 4 ส่วนความยาวไบต์ก็คือความยาวบิตหารด้วย 8 แล้วปัดขึ้น

ตัวอย่างเช่น สตริงเลขฐานสิบหก “FF” มี 2 หลัก ดังนั้นความยาวบิตคือ 2 × 4 = 8 บิต หรือ 1 ไบต์ สตริงเลขฐานสิบหก “ABCD” มี 4 หลัก จึงมี 16 บิต หรือ 2 ไบต์ ระบบจะลบช่องว่างและอักขระเว้นวรรคอื่น ๆ ออกก่อนนับ แม้มีจำนวนหลักเป็นเลขคี่ก็ยังปัดขึ้นเป็นไบต์เต็ม: “F” มี 4 บิต ซึ่งเครื่องคำนวณรายงานเป็น 1 ไบต์

วิธีคำนวณความยาวไบต์ของสตริงข้อความ

สำหรับข้อความ ขนาดจะขึ้นอยู่กับการเข้ารหัสอักขระ ซึ่งเป็นกฎที่ใช้แปลงอักขระให้เป็นไบต์ เครื่องคำนวณรองรับการเข้ารหัสห้าชนิด:

  • UTF-8: การเข้ารหัสความยาวแปรผันที่ใช้ทั่วทั้งเว็บ อักขระแต่ละตัวใช้ 1 ถึง 4 ไบต์ ตัวอักษรภาษาอังกฤษ ตัวเลข และเครื่องหมายวรรคตอนทั่วไปใช้ตัวละ 1 ไบต์
  • UTF-16: ใช้ภายใน JavaScript และ Windows อักขระส่วนใหญ่ใช้ 2 ไบต์ ส่วนอักขระนอกระนาบอักขระหลายภาษาเบื้องต้น เช่น อีโมจิจำนวนมาก ใช้ 4 ไบต์
  • UTF-32: การเข้ารหัสความยาวคงที่ อักขระทุกตัวใช้ 4 ไบต์พอดี ไม่ว่าอักขระนั้นจะเป็นตัวใด
  • ASCII: การเข้ารหัสแบบ 7 บิตที่ครอบคลุมอักขระ 128 ตัว ส่วนใหญ่เป็นตัวอักษรภาษาอังกฤษ ตัวเลข และเครื่องหมายวรรคตอนพื้นฐาน อักขระแต่ละตัวใช้ 1 ไบต์ อักขระใดก็ตามที่อยู่นอกชุดนี้จะถูกปฏิเสธ
  • Latin-1 (ISO-8859-1): การเข้ารหัสแบบ 8 บิตที่ครอบคลุมอักขระ 256 ตัว โดยเพิ่มตัวอักษรที่มีเครื่องหมายกำกับซึ่งใช้ในภาษายุโรปตะวันตก อักขระแต่ละตัวใช้ 1 ไบต์ อักขระนอกชุดนี้จะถูกปฏิเสธ

สูตร: ความยาวไบต์ = จำนวนไบต์ที่การเข้ารหัสสร้างขึ้นสำหรับสตริง ความยาวบิต = ความยาวไบต์ × 8

จำนวนที่นับครอบคลุมเฉพาะตัวข้อความเอง ไม่มีการเพิ่มเครื่องหมายลำดับไบต์ ดังนั้นจำนวนของ UTF-16 หรือ UTF-32 ในที่นี้จึงน้อยกว่าจำนวนจากเครื่องมือที่เขียนเครื่องหมายไว้ตอนต้นอยู่ 2 หรือ 4 ไบต์

ตัวอย่างพร้อมวิธีทำ

ข้อความ “Hello, world!” มีอักขระ 13 ตัว ซึ่งทั้งหมดเป็นตัวอักษรและเครื่องหมายวรรคตอน ASCII ทั่วไป

  • UTF-8: 13 ไบต์ (104 บิต) เนื่องจากอักขระทุกตัวใช้ 1 ไบต์
  • UTF-16: 26 ไบต์ (208 บิต) เนื่องจากอักขระทุกตัวใช้ 2 ไบต์

ข้อความ “こんにちは世界” (อักขระภาษาญี่ปุ่นเจ็ดตัว) ใช้ 3 ไบต์ต่ออักขระใน UTF-8 รวมเป็น 21 ไบต์ (168 บิต)

อีโมจิอย่าง 😀 อยู่นอกระนาบอักขระหลายภาษาเบื้องต้น อีโมจินี้ใช้ 4 ไบต์ใน UTF-8 ใช้ 4 ไบต์ใน UTF-16 (ในรูปคู่ตัวแทน) และใช้ 4 ไบต์ใน UTF-32

เหตุใดจำนวนเต็มที่มีเครื่องหมายจึงทำให้คำตอบเปลี่ยนไป

คอมพิวเตอร์จัดเก็บจำนวนลบด้วยส่วนเติมเต็มสองแทนการใช้เครื่องหมายลบธรรมดา ซึ่งหมายความว่าความยาวบิตของจำนวนเต็มลบไม่ได้เท่ากับความยาวบิตของค่าสัมบูรณ์บวกหนึ่งโดยตรง กฎคือ ความยาวบิตเป็นจำนวนบิต k ที่น้อยที่สุดซึ่งค่าตัวเลขมีค่าไม่น้อยกว่า −2^(k−1) นั่นคือเหตุผลที่ −128 (ซึ่งเท่ากับ −2⁷) อยู่ใน 8 บิตได้ ขณะที่ −129 ต้องใช้ 9 บิต

คำถามที่พบบ่อย

จะแปลงไบต์เป็นบิตได้อย่างไร คูณด้วย 8 ไบต์สิบไบต์เท่ากับ 80 บิต เพราะตามนิยามแล้วแต่ละไบต์มี 8 บิต

ความยาวบิตและความยาวไบต์แตกต่างกันอย่างไร ความยาวบิตนับเลขฐานสองแต่ละหลัก ส่วนความยาวไบต์นับเป็นกลุ่ม กลุ่มละ 8 บิต และปัดขึ้นเป็นไบต์เต็มถัดไปเมื่อความยาวบิตไม่ใช่พหุคูณของ 8

อักขระ UTF-8 ใช้กี่ไบต์ ใช้ระหว่าง 1 ถึง 4 ไบต์ อักขระที่ใช้ร่วมกับ ASCII ใช้ 1 ไบต์ อักขระละติน อักษรกรีก และอักษรซีริลลิกที่มีเครื่องหมายกำกับจำนวนมากใช้ 2 ไบต์ อักขระภาษาจีน ญี่ปุ่น และเกาหลีส่วนใหญ่ใช้ 3 ไบต์ อีโมจิและสัญลักษณ์หายากอื่น ๆ ใช้ 4 ไบต์

คำนวณความยาวไบต์ของสตริงเลขฐานสิบหกอย่างไร นับหลักเลขฐานสิบหกหลังจากลบช่องว่างแล้ว คูณด้วย 4 เพื่อหาจำนวนบิต จากนั้นปัดขึ้นเป็นไบต์เต็ม ไบต์แต่ละไบต์มีเลขฐานสิบหก 2 หลัก ดังนั้น “FF” คือ 1 ไบต์ และ “ABCD” คือ 2 ไบต์ เลขฐานสิบหกเพียงหลักเดียว เช่น “F” มี 4 บิต แต่ยังคงใช้พื้นที่ 1 ไบต์

เหตุใดจำนวนเต็มลบบางครั้งจึงต้องใช้บิตมากกว่าจำนวนเต็มบวกที่มีค่าเท่ากัน ส่วนเติมเต็มสองใช้หนึ่งบิตเพื่อระบุเครื่องหมาย แต่บิตนั้นใช้ร่วมกับช่วงค่าของตัวเลข แทนที่จะเพิ่มเข้ามาอีกหนึ่งบิตในทุกกรณี −128 อยู่ใน 8 บิตเดียวกับค่าบวกที่สูงสุดถึง 127 แต่ −129 ไม่สามารถอยู่ใน 8 บิตได้อีกต่อไปและต้องใช้ 9 บิต

เครื่องคำนวณนี้รับข้อมูลขนาดเท่าใด จำนวนเต็ม สตริงเลขฐานสิบหก และสตริงข้อความที่มีความยาวไม่เกิน 1,000,000 อักขระ

เอกสารอ้างอิง

  1. "Character encoding." Wikipedia, มูลนิธิวิกิมีเดีย https://en.wikipedia.org/wiki/Character_encoding
  2. "UTF-8, UTF-16, UTF-32 & BOM." Unicode, Inc. https://www.unicode.org/faq/utf_bom.html
  3. "Two's complement." Wikipedia, มูลนิธิวิกิมีเดีย https://en.wikipedia.org/wiki/Two%27s_complement