ความแตกต่างระหว่างคำและไบต์คืออะไร?


98

ฉันได้ทำการวิจัยบางอย่าง ไบต์คือ 8 บิตและคำเป็นหน่วยที่เล็กที่สุดที่สามารถระบุบนหน่วยความจำได้ ความยาวที่แน่นอนของคำจะแตกต่างกันไป สิ่งที่ฉันไม่เข้าใจคือจุดของการมีไบต์คืออะไร? ทำไมไม่พูด 8 บิต?

ฉันถามคำถามนี้กับศาสตราจารย์คนหนึ่งและเขาบอกว่าเครื่องส่วนใหญ่ในปัจจุบันสามารถระบุได้แบบไบต์ แต่จะให้คำว่าอะไร?


13
ที่ดีที่สุดคือหลีกเลี่ยงคำว่า "คำ" เพราะความคลุมเครือ หรือทำให้มันแม่นยำโดยพูดคำ 16 บิตคำ 32 บิต ...
starblue

2
การให้คำมีขนาดใหญ่ขึ้นหรือเล็กลงมีประโยชน์หรือไม่?

2
@ quest4knoledge คำที่ใหญ่กว่าช่วยให้สามารถใช้พอยน์เตอร์ขนาดใหญ่ (หรือที่เรียกว่า RAM มากขึ้น) และช่วยให้ประมวลผลตัวเลขที่ใหญ่ขึ้นได้อย่างรวดเร็ว นอกจากนี้ยังอาจช่วยให้การดำเนินการบางอย่างเช่น memset เร็วขึ้นโดยทำงานในบล็อกขนาดใหญ่ อย่างไรก็ตามโปรเซสเซอร์ที่มีคำขนาดใหญ่ต้องการทรานซิสเตอร์ในโปรเซสเซอร์มากขึ้นและอาจใช้พลังงานมากขึ้นเล็กน้อย
VoidStar

@VoidStar และคำที่ใหญ่กว่าจะหมายถึงพื้นที่ที่อยู่ที่เล็กลงหรือฉันสับสน?

1
เพื่อตอบคำถาม "อะไรคือจุดที่มีไบต์" - มันเป็นประวัติศาสตร์ ซีพียูไม่ได้เริ่มจากความสามารถในการจัดการกับสิ่งที่ใหญ่กว่า "ไบต์" (โปรเซสเซอร์รุ่นก่อนหน้านี้จัดการกับ nybbles เท่านั้น (4 บิต) แต่คำนี้ไม่เคยติดมาก่อน) ซีพียูตัวแรกของโน้ตคือ Intel 8086/8088 มันถูกออกแบบมาเพื่อจัดการกับคำสั่งที่สร้างขึ้นรอบ ๆ "ไบต์" นี่คือเหตุผลที่เรายังคงอ้างถึงหน่วยความจำในรูปของ xBytes เช่น GigaBytes เนื่องจากหน่วยพื้นฐานของหน่วยความจำแอดเดรสคือไบต์ 'K เป็นการอ้างอิงถึง KiloBytes ซึ่งพีซีเครื่องแรกมี 16 ขยายได้ถึง 64 - woo hoo!
Fred

คำตอบ:


179

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

Word : ขนาดตามธรรมชาติที่โปรเซสเซอร์ใช้จัดการข้อมูล (ขนาดรีจิสเตอร์) ขนาดคำที่พบบ่อยที่สุดในปัจจุบันคือ 8, 16, 32 และ 64 บิต แต่ขนาดอื่น ๆ ก็เป็นไปได้ สำหรับตัวอย่างมีเพียงไม่กี่36 เครื่องบิตหรือแม้กระทั่ง12 เครื่องบิต

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

คำโดยคมชัดเป็นก้อนที่ใหญ่ที่สุดของบิตที่ใช้โปรเซสเซอร์ที่สามารถทำการประมวลผล (เช่นบวกและการลบ) ในเวลา คำจำกัดความนั้นค่อนข้างคลุมเครือเนื่องจากโปรเซสเซอร์บางตัวอาจมีขนาดคำที่แตกต่างกันสำหรับงานที่แตกต่างกัน (เช่นการประมวลผลจำนวนเต็มเทียบกับทศนิยม) ขนาดของคำคือสิ่งที่ส่วนใหญ่ทำงานร่วมกับ

นอกจากนี้ยังมีโปรเซสเซอร์บางตัวที่มีขนาดตัวชี้ที่แตกต่างกันตัวอย่างเช่น 8086 เป็นโปรเซสเซอร์ 16 บิตซึ่งหมายความว่ารีจิสเตอร์มีความกว้าง 16 บิต แต่พอยน์เตอร์ (ที่อยู่) มีความกว้าง 20 บิตและคำนวณโดยการรวมรีจิสเตอร์ 16 บิตสองตัวเข้าด้วยกัน


9
คำตอบที่ยอดเยี่ยม ฉันจะเล่นลิ้นกับ " [t] he word ในทางตรงกันข้ามคือบิตที่ใหญ่ที่สุดที่โปรเซสเซอร์สามารถประมวลผลได้ ... ในแต่ละครั้ง " ในความเป็นจริงมันเป็นชิ้นส่วนที่พบมากที่สุดเป็นต้น สถาปัตยกรรมจำนวนมากที่มีการพัฒนาอยู่ตลอดเวลามีขนาดคำที่ไม่กว้างที่สุด แต่มักมีข้อ จำกัด ในสิ่งที่สามารถทำได้ด้วยค่าที่กว้างที่สุด
Ross Patterson

13
สำหรับเครดิตพิเศษ "แทะ" เป็นคำทั่วไปสำหรับครึ่งไบต์ มันเกิดขึ้นในช่วงต้นยุคซีพียูไมโครคอมพิวเตอร์ ( เช่น Intel 8080) และมักจะเข้าใจว่าเป็น 4 บิตเพราะจากนั้นไบต์ก็ลดลงเหลือ 8 บิต
Ross Patterson

7
วันนี้ 8 บิตไบต์เป็นมาตรฐาน ดู IEC 80000-13: 2008
Antonio Rizzo

1
@DebanjanDhar: ใช่พวกเขาไม่เกี่ยวข้องกัน ความสัมพันธ์เพียงอย่างเดียวคือหน้าเว็บ (AFAIK) จะมีขนาดหลายคำเสมอ
DarkDust

4
x86 (ตามปกติ) ทำให้สิ่งต่างๆซับซ้อน: ในคำศัพท์ของ Intel a wordคือ 16 บิตแม้ในซีพียู x86 สมัยใหม่ที่ขนาดตัวถูกดำเนินการเริ่มต้นคือ 32 บิต (dword) และความกว้างของการลงทะเบียนจำนวนเต็มคือ 64 บิต (qword) และรีจิสเตอร์ xmm กว้าง 128 บิต ( movdqaย้าย double-quad) บัสหน่วยความจำมีความกว้างอย่างน้อย 64 บิต (และการถ่ายโอนข้อมูลเป็นชุด 64 ไบต์ = สายแคช) และหน่วยประมวลผลไปยังเส้นทางแคชมีความกว้างอย่างน้อย 128 บิตหรือ 256 หรือแม้แต่ 512 บิต ไม่ว่าขนาดคำเครื่องดั้งเดิมของ x86 จะเป็นขนาดใดก็ตามมันไม่ใช่ 16 บิต แต่ x86 สมัยใหม่ยังคงใช้คำศัพท์ 8086
Peter Cordes

16

สิ่งที่ฉันไม่เข้าใจคือจุดของการมีไบต์คืออะไร? ทำไมไม่พูด 8 บิต?

นอกเหนือจากประเด็นทางเทคนิคที่ไบต์ไม่จำเป็นต้องมี 8 บิตแล้วเหตุผลของการมีคำศัพท์ก็เป็นเรื่องธรรมดาของมนุษย์:

  • เศรษฐกิจของความพยายาม (aka ความเกียจคร้าน) - มันง่ายที่จะพูดว่า "ไบต์" มากกว่า "แปดบิต"

  • ชนเผ่า - กลุ่มคนชอบใช้ศัพท์แสง / ภาษาส่วนตัวเพื่อทำให้พวกเขาแตกต่างจากคนอื่น ๆ

เพียงแค่ไปกับการไหล คุณจะไม่เปลี่ยนคำศัพท์ไอทีและสัมภาระทางวัฒนธรรมที่สะสมมานานกว่า 50 ปีด้วยการบ่นเกี่ยวกับเรื่องนี้


FWIW - คำที่ถูกต้องในการใช้เมื่อคุณหมายถึง "8 บิตที่เป็นอิสระจากสถาปัตยกรรมฮาร์ดแวร์" คือ "octet"


ฉันคิดว่าออคเต็ตเป็นเพียงการแปลภาษาฝรั่งเศสของไบต์ขอบคุณ;)
Abdelouahab Pp

8

ไบต์

ฉันพยายามตอบคำถามนี้จากมุมมองของ C ++

มาตรฐาน C ++ กำหนด 'ไบต์' เป็น "หน่วยแอดเดรสของข้อมูลที่ใหญ่พอที่จะเก็บสมาชิกของชุดอักขระพื้นฐานของสภาพแวดล้อมการดำเนินการ"

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

กล่าวอีกนัยหนึ่งไบต์คือจำนวนหน่วยความจำที่ต้องใช้ในการจัดเก็บอักขระเดี่ยว

หากคุณต้องการตรวจสอบ 'จำนวนบิต' ในการใช้งาน C ++ ของคุณให้ตรวจสอบไฟล์ 'limit.h' ควรมีรายการดังต่อไปนี้

#define CHAR_BIT      8         /* number of bits in a char */

คำ

Word ถูกกำหนดเป็นจำนวนบิตเฉพาะซึ่งสามารถประมวลผลร่วมกันได้ (เช่นในครั้งเดียว) โดยเครื่อง / ระบบ หรือเราสามารถพูดได้ว่า Word กำหนดจำนวนข้อมูลที่สามารถถ่ายโอนระหว่าง CPU และ RAM ได้ในการดำเนินการเดียว

การลงทะเบียนฮาร์ดแวร์ในเครื่องคอมพิวเตอร์มีขนาดคำ ขนาด Word ยังกำหนดที่อยู่หน่วยความจำที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้ (ที่อยู่หน่วยความจำแต่ละรายการจะชี้ไปที่หน่วยความจำขนาดไบต์)

หมายเหตุ - ในโปรแกรม C ++ ที่อยู่หน่วยความจำจะชี้ไปที่หน่วยความจำหนึ่งไบต์ไม่ใช่คำ


6

ทำไมไม่พูด 8 บิต?

เนื่องจากไม่ใช่ทุกเครื่องที่มีไบต์ 8 บิต เนื่องจากคุณแท็กนี้Cมองขึ้นในCHAR_BITlimits.h


6

คำคือขนาดของรีจิสเตอร์ในโปรเซสเซอร์ ซึ่งหมายความว่าคำสั่งตัวประมวลผลเช่นเพิ่มมัล ฯลฯ อยู่ในอินพุตขนาดคำ

แต่สถาปัตยกรรมสมัยใหม่ส่วนใหญ่มีหน่วยความจำที่ระบุแอดเดรสได้เป็นชิ้น 8 บิตดังนั้นจึงสะดวกในการใช้คำว่า "ไบต์"


ในแง่หนึ่งแล้วคำว่า "byte" ใช้เพื่อความสะดวก?

ใช่ "ไบต์" สะดวกเป็นพิเศษเมื่อมีการคิดค้นคำนี้ เช่นเดียวกับอนุสัญญาหลายฉบับเมื่อกำหนดไว้แล้วยังคงมีอยู่ ฉันไม่แน่ใจว่าคำศัพท์ที่ใช้ไบต์ทำให้คอมพิวเตอร์เข้าใจง่ายขึ้นในภาพใหญ่อีกต่อไปหรือไม่ แต่มันเป็นแบบแผนที่โดดเด่นและไม่ต้องการเปลี่ยนแปลงในเวลาใด ๆ ในเร็ว ๆ นี้
VoidStar

ไบต์เป็นคำที่ใช้สำหรับหน่วยที่ใช้เป็นอักขระในข้อความ ในอดีตมีไบต์ที่มีขนาดตั้งแต่ 6 ถึง 9 บิต
starblue

@starblue เป็นไปได้อย่างไรที่ถ่านใช้พื้นที่น้อยกว่าคำ?

1
@ quest4knoledge: เนื่องจากหน่วยความจำถูกเก็บไว้ในกลุ่มคำที่เล็กกว่า คำคือ 32 บิต (หรือ 64 บิตในเครื่องรุ่นใหม่) ในอัลกอริทึมที่ประมวลผลตัวอักษรแต่ละตัวแบบ 1 ต่อ 1 จะใช้ทั้งคำก็ต่อเมื่ออยู่ใน CPU และเมื่อใส่กลับเข้าไปใน RAM ก็จะถูกบรรจุให้แน่นยิ่งขึ้น
VoidStar

5

ในบริบทนี้คำคือหน่วยที่เครื่องใช้เมื่อทำงานกับหน่วยความจำ ตัวอย่างเช่นในเครื่อง 32 บิตคำจะยาว 32 บิตและบน 64 บิตยาว 64 บิต ขนาดคำจะกำหนดพื้นที่ที่อยู่

ในการเขียนโปรแกรม (C / C ++) โดยทั่วไปแล้วคำจะแสดงด้วยint_ptrประเภทซึ่งมีความยาวเท่ากับตัวชี้ซึ่งทำให้รายละเอียดเหล่านี้เป็นนามธรรม

API บางตัวอาจทำให้คุณสับสนเช่น Win32 API เนื่องจากมีประเภทต่างๆเช่นWORD(16 บิต) และDWORD(32 บิต) เหตุผลก็คือตอนแรก API กำหนดเป้าหมายไปยังเครื่อง 16 บิตจากนั้นถูกย้ายไปยังเครื่อง 32 บิตจากนั้นไปยังเครื่อง 64 บิต INT_PTRในการจัดเก็บชี้คุณสามารถใช้ รายละเอียดเพิ่มเติมที่นี่และที่นี่


5

ดูเหมือนว่าคำตอบทั้งหมดจะใช้ภาษาระดับสูงและภาษา C / C ++ เป็นหลัก

แต่คำถามนั้นติดแท็ก "แอสเซมบลี" และในแอสเซมเบลอร์ทั้งหมดที่ฉันรู้จัก (สำหรับซีพียู 8 บิต 16 บิต 32 บิตและ 64 บิต) คำจำกัดความนั้นชัดเจนกว่ามาก:

byte  = 8 bits 
word  = 2 bytes
dword = 4 bytes = 2Words (dword means "double word")
qword = 8 bytes = 2Dwords = 4Words ("quadruple word")

3
ไม่ขนาดเหล่านี้ใช้ได้กับเครื่อง 16 บิตเท่านั้น คุณอาจคุ้นเคยกับการเขียนโปรแกรม Windows ซึ่งยังคงใช้มาโครเหล่านี้เนื่องจากเป็นแบบดั้งเดิมจากวันที่ 16 บิตและ MS ไม่ใส่ใจที่จะแก้ไขสิ่งนี้
DarkDust

2
BTW เนื่องจากขนาดของคำ (และแม้แต่ไบต์จริงๆ) อาจแตกต่างกัน ISO-C จึงมีint<X>_tและuint<X>_tประเภท (บวกมากกว่า) ซึ่งควรใช้หากคุณต้องการตัวแปร / พารามิเตอร์ที่มีขนาดบิตเฉพาะ
DarkDust

@DarkDust เรากำลังพูดถึงภาษาแอสเซมบลีที่นี่ มาตรฐาน C ไม่เกี่ยวข้อง BTW ฉันกำลังเขียนโปรแกรมประกอบตั้งแต่ปีพ. ศ. 2523 และมีการใช้ชื่อเดียวกัน (อาจจะยกเว้น qword)
johnfound

อย่างไรก็ตามฉันพบข้อยกเว้น: ใน GNU เนื่องจาก.wordอาจเป็น 32 บิต (ตัวอย่างเช่นSparc )
DarkDust

ขออภัย AS ไม่ใช่แอสเซมเบลอร์ มันเป็นมนุษย์กลายพันธุ์ที่น่าเกลียดพิการน่าสังเวชสร้างขึ้นโดยมีเป้าหมายเดียวเพื่อเป็นแบ็คเอนด์สำหรับคอมไพเลอร์ HLL
johnfound

3

ความยาวที่แน่นอนของคำจะแตกต่างกันไป สิ่งที่ฉันไม่เข้าใจคือจุดของการมีไบต์คืออะไร? ทำไมไม่พูด 8 บิต?

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

นอกเหนือจากนั้นต่อไปนี้เป็นเหตุผลบางประการในการใช้ไบต์ (หรืออ็อกเต็ต1 ) บน "8 บิต":

  1. หน่วยที่ใหญ่กว่านั้นสะดวกในการหลีกเลี่ยงตัวเลขขนาดใหญ่หรือเล็กมากเช่นกันคุณอาจถามว่า "ทำไมพูด 3 นาโนวินาทีเมื่อคุณพูดได้ 0.000000003 วินาที" หรือ "ทำไมพูด 1 กิโลกรัมเมื่อคุณพูดได้ 1,000 กรัม" เป็นต้น
  2. นอกเหนือจากความสะดวกแล้วหน่วยของไบต์ยังมีความสำคัญเท่ากับ 1 บิตเนื่องจากการดำเนินการหลายอย่างมักไม่ทำงานที่ระดับไบต์ แต่ในระดับไบต์: การกำหนดแอดเดรสหน่วยความจำการจัดสรรหน่วยเก็บข้อมูลแบบไดนามิกการอ่านจากไฟล์หรือซ็อกเก็ตเป็นต้น
  3. แม้ว่าคุณจะต้องใช้ "8 บิต" เป็นหน่วยประเภทหนึ่งดังนั้นคุณสามารถพูดว่า "สอง 8 บิต" แทน "สองไบต์" ได้บ่อยครั้งที่จะทำให้หน่วยใหม่ของคุณเริ่มต้นด้วยตัวเลข ตัวอย่างเช่นหากมีคนพูดว่า "หนึ่งร้อย 8 บิต" ก็สามารถตีความได้ง่ายว่า 108 บิตแทนที่จะเป็น 100 บิต

1ถึงแม้ว่าผมจะพิจารณาไบต์จะเป็น 8 บิตสำหรับคำตอบนี้เป็นไม่ครอบคลุมจริง: ในเครื่องเก่าไบต์อาจมีขนาดแตกต่างกัน (เช่น6 บิต . Octetเสมอหมายถึง 8 บิตโดยไม่คำนึงถึงของเครื่อง ( ดังนั้นคำนี้จึงมักใช้ในการกำหนดโปรโตคอลเครือข่าย) ในการใช้งานสมัยใหม่ไบต์ถูกใช้อย่างล้นหลามเป็นคำพ้องความหมายกับ 8 บิต


2

ไม่ว่าคำศัพท์ที่มีอยู่ในเอกสารข้อมูลและคอมไพเลอร์จะเป็นอย่างไร 'ไบต์' คือแปดบิต อย่าพยายามสับสนกับข้อยกเว้นที่คลุมเครือโดยเฉพาะอย่างยิ่งเมื่อคำว่า "Byte" มาจากนิพจน์ "By Eight" ฉันทำงานในอุตสาหกรรมเซมิคอนดักเตอร์ / อิเล็กทรอนิกส์มานานกว่าสามสิบปีแล้วและไม่เคยรู้จัก 'ไบต์' เพื่อแสดงอะไรมากกว่าแปดบิต


ผิดปกติใช่ (เรารู้ดีตัวอย่างคือ The texas instruments c54x Google texas instruments c54x byte. ti.com/lit/ug/spru393/spru393.pdf "คำแนะนำ 'C55x เป็นความยาวไบต์ที่ผันแปรได้ตั้งแต่ขนาด 8 บิตถึง 48 บิต " stackoverflow.com/questions/2098149/…
barlop

1
มันไม่ได้มาจากที่นั่นเลย คำนี้บัญญัติขึ้นโดย W. Buchholtz ที่ IBM ในช่วงปลายทศวรรษ 1950 ที่มา: bobbemer.com/BYTE.HTM ตามความเห็นของ Bob Bemer ตัวสะกด "byte" ได้รับเลือกให้เป็น "bite" เพื่อหลีกเลี่ยงความสับสน (กับ "bit") เนื่องจากพิมพ์ผิด เขาคงจะรู้ดี เขาอยู่ที่นั่น!
Stephen C

(เพียง 30 ปีคุณเป็นเพียงนักต้มตุ๋นเท่านั้นฉันเรียนรู้ที่จะเขียนโปรแกรมบนระบบที่ขนาด "ไบต์" ตามธรรมชาติไม่ใช่ 8 บิต :-))
Stephen C

1

อ้างอิง: https://www.os-book.com/OS9/slide-dir/PPT-dir/ch1.ppt

หน่วยเก็บข้อมูลพื้นฐานของคอมพิวเตอร์คือบิต บิตสามารถมีหนึ่งในสองค่าคือ 0 และ 1 ที่เก็บข้อมูลอื่น ๆ ทั้งหมดในคอมพิวเตอร์จะขึ้นอยู่กับการรวบรวมบิต เมื่อพิจารณาถึงจำนวนบิตที่เพียงพอแล้วจึงเป็นเรื่องที่น่าอัศจรรย์ที่คอมพิวเตอร์สามารถแสดงถึงตัวเลขตัวอักษรภาพภาพยนตร์เสียงเอกสารและโปรแกรมเพื่อตั้งชื่อไม่กี่อย่าง ไบต์คือ 8 บิตและในคอมพิวเตอร์ส่วนใหญ่จะเป็นหน่วยเก็บข้อมูลที่สะดวกที่สุดที่เล็กที่สุด ตัวอย่างเช่นคอมพิวเตอร์ส่วนใหญ่ไม่มีคำสั่งให้ย้ายบิต แต่มีหนึ่งในการย้ายไบต์ คำที่ไม่ค่อยพบบ่อยคือ word ซึ่งเป็นหน่วยข้อมูลดั้งเดิมของสถาปัตยกรรมคอมพิวเตอร์ที่กำหนด คำประกอบด้วยหนึ่งไบต์หรือหลายไบต์ ตัวอย่างเช่นคอมพิวเตอร์ที่มีการลงทะเบียน 64 บิตและการกำหนดแอดเดรสหน่วยความจำ 64 บิตมักจะมีคำ 64 บิต (8 ไบต์) คอมพิวเตอร์เรียกใช้การดำเนินการจำนวนมากในขนาดคำดั้งเดิมแทนที่จะเป็นไบต์ในแต่ละครั้ง ที่เก็บคอมพิวเตอร์ พร้อมกับปริมาณงานคอมพิวเตอร์ส่วนใหญ่โดยทั่วไปจะวัดและจัดการเป็นไบต์และคอลเลกชันของไบต์ กิโลไบต์หรือ KB คือ 1,024 ไบต์ต่อเมกะไบต์หรือ MB คือ 1,024 2 ไบต์ต่อกิกะไบต์หรือ GB คือ 1,024 3 ไบต์ต่อเทราไบต์หรือ TB เท่ากับ 1,024 4 ไบต์ต่อเพตะไบต์หรือ PB คือ 1,024 5 ไบต์คอมพิวเตอร์ ผู้ผลิตมักจะปัดเศษตัวเลขเหล่านี้และบอกว่าเมกะไบต์คือ 1 ล้านไบต์และกิกะไบต์เท่ากับ 1 พันล้านไบต์ การวัดเครือข่ายเป็นข้อยกเว้นสำหรับกฎทั่วไปนี้ พวกเขาจะได้รับเป็นบิต (เนื่องจากเครือข่ายย้ายข้อมูลครั้งละเล็กน้อย) 024 5 ไบต์ผู้ผลิตคอมพิวเตอร์มักปัดเศษตัวเลขเหล่านี้และบอกว่าเมกะไบต์คือ 1 ล้านไบต์และกิกะไบต์เท่ากับ 1 พันล้านไบต์ การวัดเครือข่ายเป็นข้อยกเว้นสำหรับกฎทั่วไปนี้ พวกเขาจะได้รับเป็นบิต (เนื่องจากเครือข่ายย้ายข้อมูลครั้งละเล็กน้อย) 024 5 ไบต์ผู้ผลิตคอมพิวเตอร์มักปัดเศษตัวเลขเหล่านี้และบอกว่าเมกะไบต์คือ 1 ล้านไบต์และกิกะไบต์เท่ากับ 1 พันล้านไบต์ การวัดเครือข่ายเป็นข้อยกเว้นสำหรับกฎทั่วไปนี้ พวกเขาได้รับเป็นบิต (เนื่องจากเครือข่ายย้ายข้อมูลครั้งละเล็กน้อย)


-1

หากเครื่องเป็นไบต์แอดเดรสได้และคำเป็นหน่วยที่เล็กที่สุดที่สามารถระบุบนหน่วยความจำได้ฉันเดาว่าคำนั้นจะเป็นไบต์!


ใช่. หน่วยความจำแอดเดรสต่ำสุดบน TMS320C54xx (หนึ่งใน DSP ของ Texas Instruments) มีความยาว 16 บิตซึ่งเป็นขนาดที่เล็กที่สุดของรีจิสเตอร์เอนกประสงค์ และคอมไพเลอร์ TI C กำหนด char = short = int = 16 บิต
Alexey Frunze

ไม่เครื่อง RISC ส่วนใหญ่มีคำ 32 บิต แต่สามารถระบุไบต์เดี่ยวได้ บน MIPS เช่นword แน่นอนหมายความว่า 32 บิต แต่มีlb(โหลดไบต์) การเรียนการสอนที่โหลด 8 บิต
Peter Cordes

-1

กลุ่มของ 8 บิตเรียกว่าไบต์ (ยกเว้นกรณีที่ไม่ใช่ :) สำหรับสถาปัตยกรรมบางอย่าง)

คำเป็นกลุ่มขนาดคงที่ของบิตที่ได้รับการจัดการเป็นหน่วยโดยชุดคำสั่งและ / หรือฮาร์ดแวร์ของโปรเซสเซอร์ นั่นหมายถึงขนาดของรีจิสเตอร์วัตถุประสงค์ทั่วไป (ซึ่งโดยทั่วไปมากกว่าไบต์) คือคำ

ใน C คำมักเรียกว่าจำนวนเต็ม =>int


7
กลุ่ม 8 บิตเรียกว่าออคเต็ต
cnicutar

2
ที่ถูกต้อง: คำที่octetถูกกำหนดไว้อย่างชัดเจนแสดงลำดับของ 8 บิตเพราะความคลุมเครือที่เกี่ยวข้องกับคำไบต์ แต่ฉันชอบเสียงที่byteดีกว่า :)
tolitius

2
@tolitius: +1 สำหรับ "แต่ฉันชอบเสียงที่byteดีกว่า" ฉันสงสัยอย่างยิ่งว่าคุณไม่ได้อยู่คนเดียวในเรื่องนี้และปลอดภัยสำหรับระบบเฉพาะบางระบบ "ความสับสน" ของไบต์ที่อาจเป็นขนาดอื่นที่ไม่ใช่ 8 บิต ไม่เกี่ยวข้องอีกต่อไปในปัจจุบัน
Joachim Sauer

-1

เงื่อนไขของ BYTE และ WORD สัมพันธ์กับขนาดของโปรเซสเซอร์ที่อ้างถึง โปรเซสเซอร์ที่ใช้บ่อยที่สุดคือ / คือ 8 บิต 16 บิต 32 บิตหรือ 64 บิต นี่คือความยาวของ WORD ของโปรเซสเซอร์ จริงๆแล้วครึ่งหนึ่งของ WORD คือไบต์ไม่ว่าความยาวของตัวเลขจะเป็นเท่าใด พร้อมสำหรับสิ่งนี้ครึ่งหนึ่งของไบต์เป็น NIBBLE


ไม่ในซีพียูที่มีคำ 32 บิตและ 8 บิตไบต์ (เช่น MIPS หรือ ARM) ครึ่งคำคือ 2 ไบต์
Peter Cordes

-3

ในความเป็นจริงในการใช้งานทั่วไป word กลายเป็นคำที่มีความหมายเหมือนกันกับ 16 บิตเช่นเดียวกับไบต์ที่มี 8 บิต อาจทำให้เกิดความสับสนเล็กน้อยเนื่องจาก "ขนาดคำ" บน CPU 32 บิตคือ 32 บิต แต่เมื่อพูดถึงข้อมูลคำหนึ่งจะหมายถึง 16 บิต ไมโครคอนโทรลเลอร์ที่มีขนาดคำ 32 บิตใช้ในการเรียกคำสั่งของพวกเขาว่า "longs" (ควรจะพยายามหลีกเลี่ยงความสับสนของคำ / คำสองคำ)


1
ขึ้นอยู่กับประเภทของ CPU ทั้งหมด ตามที่คุณชี้ให้เห็นในเครื่อง 32 บิตที่ไม่ใช่ IA32 โดยทั่วไป "word" จะเป็น 32 บิต
Ross Patterson

2
@RossPatterson ขึ้นอยู่กับว่าคุณกำลังพัฒนาซอฟต์แวร์หรือรับประทานอาหารเย็น
วิศวกร

ARM / MIPS / สถาปัตยกรรม RISC หลักอื่น ๆ มีคำ 32 บิต เป็นความกว้างของการลงทะเบียน (บน ISA รุ่น 32 บิต) และความกว้างของคำสั่ง 16 บิตเป็นครึ่งคำดังนั้นคำสั่ง ARMldrhจึงต้องการโหลด 16 บิตและขยายศูนย์ลงในรีจิสเตอร์ 32 บิต หรือldrshเพื่อโหลดและลงนามขยาย 16 บิต
Peter Cordes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.