เป้าหมายของโครงการนี้คือการจัดหาไลบรารีขนาดเล็กที่จะอำนวยความสะดวกในการดำเนินการทั่วไปโดยมีขนาดเป็นไบต์ หลายโปรเจ็กต์ต้องทำงานกับขนาดเป็นไบต์ (ไม่ว่าจะเป็นขนาดพื้นที่เก็บข้อมูล หน่วยความจำ...) และทุกโปรเจกต์ต้องจัดการกับปัญหาเดียวกัน เช่น:
วิธีรับสตริงที่มนุษย์อ่านได้สำหรับขนาดที่กำหนด
จะจัดเก็บขนาดที่กำหนดอย่างไรเพื่อไม่ให้ข้อมูลสำคัญสูญหาย
หากเราเก็บขนาดเป็นไบต์ จะเกิดอะไรขึ้นหากขนาดที่กำหนดเกินค่า MAXUINT64
จะตีความขนาดที่ป้อนโดยผู้ใช้ตามสถานที่และรูปแบบการพิมพ์ได้อย่างไร
วิธีจัดการกับความกำกวมของหน่วยทศนิยม/ไบนารี (MB เทียบกับ MiB)
บางโครงการมีการตอบคำถาม/ข้อกังวลข้างต้นทั้งหมดเป็นอย่างดี บางโครงการได้รับการกล่าวถึงเพียงบางส่วน บางโครงการก็ไม่สนใจ อย่างไรก็ตาม การนำโซลูชัน (บางส่วน) ไปใช้งานในหลายๆ แห่งทุกครั้งที่มีข้อบกพร่องที่แตกต่างกัน พฤติกรรมที่ต่างกัน และสิ่งนี้หรือบางอย่างที่ขาดหายไปนั้นเป็นการเสียเวลาและความพยายามไปโดยเปล่าประโยชน์ เราต้องการโซลูชันที่ใช้งานได้ทั่วไปซึ่งทุกโครงการสามารถใช้กับขนาดเป็นไบต์ได้
เนื่องจากเป้าหมายคือการจัดหาโซลูชันที่ใช้งานได้ทั่วไปมากที่สุดเท่าที่จะเป็นไปได้ การนำไปใช้จึงต้องมีขนาดเล็ก รวดเร็ว และเขียนด้วยภาษาที่สามารถเชื่อมต่อกับภาษาอื่นได้ง่าย ตัวเลือกที่ชัดเจนในปัจจุบันคือภาษา C ที่มีการผูกแบบบางสำหรับภาษาอื่น
bscalc [-h] [--version] [-u {B,KiB,MiB,GiB,TiB,PiB,EiB,KB,MB,GB,TB,PB,EB}] [-b] [-k] [-m] [-g] [-t] [-p] [-e] [--KB] [--MB] [--GB] [--TB] [--PB] [--EB] [-H] EXPRESSION_PART [EXPRESSION_PART ...]bscalc [OPTIONS] EXPRESSION_PART [EXPRESSION_PART ...]
โดยที่ EXPRESSION_PART เป็นอาร์กิวเมนต์ตำแหน่ง
แสดงข้อความช่วยเหลือนี้และออก
แสดงหมายเลขเวอร์ชันของโปรแกรมและออก
หน่วยแสดงผลเป็น
แสดงผลเป็นไบต์
แสดงผลเป็น KiB
แสดงผลเป็น MiB
แสดงผลเป็น GiB
แสดงผลเป็น TiB
แสดงผลเป็น PiB
แสดงผลเป็น EiB
แสดงผลเป็น KB
แสดงผลเป็น MB
แสดงผลเป็น GB
แสดงผลเป็นวัณโรค
แสดงผลเป็น PB
แสดงผลเป็น EB
แสดงผล 'ดีที่สุด' เพียงรายการเดียว
รายงานปัญหาที่ https://github.com/storaged-project/libbytesize/issues
1. แปลง 10,00000000000 ไบต์เป็นหน่วยที่สูงขึ้น:
bscalc 1000000000000
เอาท์พุต:
1000000000000 B
976562500.00 KiB
953674.32 MiB
931.32 GiB
0.91 TiB2. แปลง 10,00000000000 ไบต์เป็นหน่วยที่สูงขึ้นที่เหมาะสมที่สุด:
bscalc -H 1000000000000
เอาท์พุต:
931.32 GiB