การดำเนินการเลขคณิตในตัวอย่างระบบไบนารี เลขคณิตไบนารี

หมายเหตุ: เมื่อบวกตัวเลขสองตัวที่เท่ากับ 1 จะได้ 0 ในหลักนี้ และหลักที่ 1 จะถูกโอนไปยังหลักที่มีนัยสำคัญที่สุด

ตัวอย่าง_21: ให้หมายเลข 101 (2) และ 11 (2) หาผลรวมของตัวเลขเหล่านี้

โดยที่ 101 (2) = 5 (10) , 11 (2) = 3 (10) , 1000 (2) = 8 (10) .

ตรวจสอบ: 5+3=8

เมื่อลบหนึ่งจาก 0 หน่วยจะถูกนำมาจากหลักสูงสุดที่ใกล้ที่สุดซึ่งแตกต่างจาก 0 ในขณะเดียวกันหน่วยที่อยู่ในหลักสูงสุดจะให้ 2 หน่วยในหลักที่มีความสำคัญน้อยที่สุดและหนึ่งในหลักทั้งหมดระหว่างสูงสุด และต่ำสุด

ตัวอย่าง_22: ให้หมายเลข 101 (2) และ 11 (2) ค้นหาความแตกต่างระหว่างตัวเลขเหล่านี้

โดยที่ 101 (2) =5 (10) , 11 (2) =3 (10) , 10 (2) =2 (10) .

ตรวจสอบ: 5-3=2

การดำเนินการคูณจะลดลงเป็นกะและบวกซ้ำ

ตัวอย่าง_23: ให้หมายเลข 11 (2) และ 10 (2) ค้นหาผลคูณของตัวเลขเหล่านี้

โดยที่ 11 (2) =3 (10) , 10 (2) =2 (10) , 110 (2) =6 (10) .

ตรวจสอบ: 3*2=6

การดำเนินการเลขคณิตในระบบเลขฐานแปด

เมื่อบวกตัวเลขสองตัวผลรวมที่เท่ากับ 8 ในหมวดหมู่นี้จะได้รับ 0 และอันดับที่ 1 จะถูกโอนไปยังลำดับสูงสุด

ตัวอย่าง_24: ให้หมายเลข 165 (8) และ 13 (8) หาผลรวมของตัวเลขเหล่านี้

โดยที่ 165 (8) = 117 (10) , 13 (8) = 11 (10) , 200 (8) = 128 (10) .

เมื่อลบจำนวนที่มากกว่าออกจากจำนวนที่น้อยกว่า หน่วยจะถูกนำมาจากหลักสูงสุดที่ใกล้ที่สุดซึ่งต่างจาก 0 ในขณะเดียวกัน หน่วยที่อยู่ในหลักสูงสุดจะให้ 8 ในหลักที่มีนัยสำคัญน้อยที่สุด

ตัวอย่าง_25: ให้หมายเลข 114 (8) และ 15 (8) ค้นหาความแตกต่างระหว่างตัวเลขเหล่านี้

โดยที่ 114 (8) =76 (10) , 15 (8) =13 (10) , 77 (8) =63 (10) .

การดำเนินการเลขคณิตในระบบเลขฐานสิบหก

เมื่อบวกสองตัวเลข รวมเป็น 16, 0 จะถูกเขียนในหมวดนี้ และ 1 จะถูกโอนไปยังลำดับสูงสุด

ตัวอย่าง_26: ให้หมายเลข 1B5 (16) และ 53 (16) หาผลรวมของตัวเลขเหล่านี้

โดยที่ 1B5 (16) = 437 (10) , 53 (16) = 83 (10) , 208 (16) = 520 (10) .

เมื่อลบจำนวนที่มากกว่าออกจากจำนวนที่น้อยกว่า หน่วยจะถูกนำมาจากหลักสูงสุดที่ใกล้ที่สุดอื่นที่ไม่ใช่ 0 ในขณะเดียวกันหน่วยที่อยู่ในหลักสูงสุดจะให้ 16 ในหลักที่มีนัยสำคัญน้อยที่สุด

ตัวอย่าง_27: ให้หมายเลข 11A (16) และ 2C (16) ค้นหาความแตกต่างระหว่างตัวเลขเหล่านี้

โดยที่ 11A (16) =282 (10) , 2C (16) =44 (10) , EE (16) =238 (10) .

การเข้ารหัสข้อมูลคอมพิวเตอร์

ข้อมูลในคอมพิวเตอร์แสดงเป็นรหัส ซึ่งประกอบด้วยหนึ่งและศูนย์ในลำดับที่ต่างกัน

รหัส– ชุดสัญลักษณ์สำหรับนำเสนอข้อมูล การเข้ารหัสเป็นกระบวนการนำเสนอข้อมูลในรูปแบบของรหัส

รหัสตัวเลข

เมื่อดำเนินการคำนวณทางคณิตศาสตร์ในคอมพิวเตอร์จะใช้ โดยตรงย้อนกลับ และ เพิ่มเติม รหัสตัวเลข

รหัสตรง

ตรงรหัส (การแสดงในรูปของค่าสัมบูรณ์ที่มีเครื่องหมาย) ของเลขฐานสองคือเลขฐานสองเอง โดยที่ตัวเลขทั้งหมดที่แทนค่าของมันจะถูกเขียนเป็นสัญลักษณ์ทางคณิตศาสตร์ และเครื่องหมายของตัวเลขนั้นเขียนเป็น เลขฐานสอง.

จำนวนเต็มสามารถแสดงในคอมพิวเตอร์ที่มีหรือไม่มีเครื่องหมาย

จำนวนเต็มที่ไม่ได้ลงนามมักจะใช้หน่วยความจำหนึ่งหรือสองไบต์ ในการจัดเก็บจำนวนเต็มที่ลงนาม จะมีการจัดสรรหนึ่ง สอง หรือสี่ไบต์ ในขณะที่บิตที่สำคัญที่สุด (ซ้ายสุด) จะได้รับการจัดสรรภายใต้เครื่องหมายของตัวเลข หากตัวเลขเป็นบวก ค่า 0 จะถูกเขียนลงในบิตนี้ หากเป็นค่าลบ ให้เท่ากับ 1

ตัวอย่าง_28:

1 (10) =0 000 0001 (2) , -1 (10) =1 000 0001 (2)


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

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

รหัสย้อนกลับ

รหัสย้อนกลับของจำนวนบวกตรงกับจำนวนโดยตรง และเมื่อเขียนจำนวนลบ ตัวเลขทั้งหมดยกเว้นหลักที่แทนเครื่องหมายของตัวเลข จะถูกแทนที่ด้วยตัวเลขตรงข้าม (0 แทนที่ด้วย 1 และ 1 แทนที่ด้วย 0 ).

ตัวอย่าง_29:

ตัวอย่าง_30:

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

รหัสเพิ่มเติม

รหัสเพิ่มเติมของจำนวนบวกตรงกับจำนวนโดยตรง และรหัสของจำนวนลบจะเกิดขึ้นโดยการเพิ่ม 1 ลงในโค้ดผกผัน

ตัวอย่าง_31:

ตัวอย่าง_32:

ตัวอย่าง_33:

สำหรับจำนวนเต็ม -32 (10) ให้เขียนโค้ดเพิ่มเติม

1. หลังจากแปลงเลข 32 (10) เป็นระบบเลขฐานสองแล้ว เราจะได้:

32 (10) =100000 (2) .

2. รหัสตรงสำหรับจำนวนบวก 32 (10) คือ 0010 0000

3. สำหรับจำนวนลบ -32 (10) รหัสตรงคือ 1010 0000

4. รหัสย้อนกลับของหมายเลข -32 (10) คือ 1101 1111

5. รหัสเพิ่มเติมของหมายเลข -32 (10) คือ 1110 0000

ตัวอย่าง_34:

รหัสเพิ่มเติมของตัวเลขคือ 0011 1011 ค้นหาค่าของตัวเลขในรูปแบบทศนิยม

1. หลักแรก (เครื่องหมาย) ของตัวเลข 0 011 1011 คือ 0 ดังนั้นตัวเลขจึงเป็นบวก

2. สำหรับจำนวนบวก รหัสเพิ่มเติม ผกผัน และโดยตรงจะเหมือนกัน

3. ตัวเลขในระบบเลขฐานสองได้มาจากบันทึกของรหัสตรง - 111011 (2) (เราทิ้งศูนย์จากตัวเลขสูงสุด)

4. จำนวน 111011 (2) หลังจากแปลงเป็นระบบเลขฐานสิบแล้วคือ 59 (10)

ตัวอย่าง_35:

รหัสเพิ่มเติมของตัวเลขคือ 1011 1011 ค้นหาค่าของตัวเลขในรูปแบบทศนิยม

1. ลงชื่อหลักของตัวเลข 1 011 1011 คือ 1 ดังนั้นตัวเลขจึงเป็นลบ

2. ในการกำหนดรหัสย้อนกลับของตัวเลข ให้ลบหนึ่งรหัสออกจากรหัสเพิ่มเติม รหัสย้อนกลับคือ 1 011 1010.

3. รหัสตรงได้มาจากการย้อนกลับโดยแทนที่เลขฐานสองทั้งหมดของตัวเลขด้วยตัวเลขตรงข้าม (1 สำหรับ 0, 0 สำหรับ 1) รหัสตรงของตัวเลขคือ 1 100 0101 (ในเครื่องหมายบิตเราเขียน 1)

4. ตัวเลขในระบบเลขฐานสองได้มาจากบันทึกรหัสตรง - -100 0101 (2)

4. จำนวน -1000101 (2) หลังจากแปลงเป็นทศนิยมแล้ว เท่ากับ -69 (10)


ข้อมูลที่คล้ายกัน


งานบริการ. เครื่องคิดเลขออนไลน์ได้รับการออกแบบมาเพื่อเพิ่มเลขฐานสองในรหัสโดยตรง ผกผัน และรหัสเสริม

ข้อมูลต่อไปนี้ใช้กับเครื่องคิดเลขนี้ด้วย:
การแปลงตัวเลขเป็นระบบเลขฐานสอง ฐานสิบหก ทศนิยม ฐานแปด
การคูณเลขฐานสอง
รูปแบบจุดลอยตัว
ตัวอย่าง # 1 แสดงหมายเลข 133.54 เป็นตัวเลขทศนิยม
การตัดสินใจ. มาแทนตัวเลข 133.54 ในรูปแบบเลขชี้กำลังปกติ:
1.3354*10 2 = 1.3354*ประสบการณ์ 10 2
หมายเลข 1.3354*exp 10 2 ประกอบด้วยสองส่วน: mantissa M=1.3354 และ exponent exp 10 =2
ถ้าแมนทิสซาอยู่ในช่วง 1 ≤ M การแสดงตัวเลขในรูปแบบเลขชี้กำลังดีนอร์มัลไลซ์.
ถ้าแมนทิสซาอยู่ในช่วง 0.1 ≤ M ลองแทนตัวเลขในรูปแบบเลขชี้กำลังดีนอร์มัลไลซ์: 0.13354*exp 10 3

ตัวอย่าง # 2 แสดงเลขฐานสอง 101.10 2 ในรูปแบบปกติ เขียนในมาตรฐาน IEEE754 แบบ 32 บิต
ตารางความจริง


การคำนวณขีดจำกัด

เลขคณิตในระบบเลขฐานสอง

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

การเพิ่มตัวเลขโดยคำนึงถึงเครื่องหมายบนเครื่องเป็นลำดับของการดำเนินการต่อไปนี้:

  • การแปลงตัวเลขดั้งเดิมเป็นรหัสที่ระบุ
  • การเพิ่มรหัสระดับบิต
  • การวิเคราะห์ผลลัพธ์
เมื่อดำเนินการในรหัสผกผัน (แก้ไขผกผัน) หากเป็นผลมาจากการเพิ่มหน่วยพกพาเกิดขึ้นในบิตเครื่องหมาย มันจะถูกเพิ่มไปยังบิตที่มีนัยสำคัญน้อยที่สุดของผลรวม
เมื่อดำเนินการในรหัสเพิ่มเติม (แก้ไขเพิ่มเติม) หากเป็นผลมาจากการเพิ่มหน่วยพกพาเกิดขึ้นในบิตเครื่องหมาย จะถูกละทิ้ง
การลบในคอมพิวเตอร์ทำได้โดยการบวกตามกฎ: X-Y=X+(-Y) การดำเนินการเพิ่มเติมจะดำเนินการในลักษณะเดียวกับการดำเนินการเพิ่มเติม

ตัวอย่าง # 1
ให้: x=0.110001; y= -0.001001 เพิ่มในโค้ดที่แก้ไขแบบย้อนกลับ

ให้: x=0.110001; y= -0.001101 เพิ่มโค้ดที่แก้ไขเพิ่มเติม

ตัวอย่าง # 2 แก้ตัวอย่างการลบเลขฐานสองโดยใช้วิธีการเสริมและการตัดคำของ 1
ก) 11 - 10.
การตัดสินใจ.
มาแทนตัวเลข 11 2 และ -10 2 ในรหัสย้อนกลับ

เลขฐานสอง 0000011 มีรหัสส่งคืน 0.0000011

มาบวกเลข 00000011 และ 11111101 . กัน

7 6 5 4 3 2 1 0
1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0

7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 2 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 3
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0

7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

เป็นผลให้เราได้รับ:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

มีการพกพาจากบิตป้าย มาบวกกัน (เช่น 1) กับจำนวนผลลัพธ์ (ดังนั้นจึงดำเนินการตามขั้นตอนการถ่ายโอนแบบวนซ้ำ)
เป็นผลให้เราได้รับ:
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1

ผลลัพธ์เพิ่มเติม: 00000001 แปลงเป็นการแสดงทศนิยม ในการแปลส่วนจำนวนเต็ม จำเป็นต้องคูณตัวเลขของตัวเลขด้วยระดับของหลักที่สอดคล้องกัน
00000001 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1
ผลการบวก (ในรูปแบบทศนิยม): 1

b) 111-010 ลองแทนตัวเลข 111 2 และ -010 2 ในรหัสย้อนกลับ
รหัสย้อนกลับสำหรับจำนวนบวกจะเหมือนกับรหัสตรง สำหรับจำนวนลบ ตัวเลขทั้งหมดของตัวเลขนั้นจะถูกแทนที่ด้วยตัวตรงข้าม (1 ถึง 0, 0 ถึง 1) และป้อนหนึ่งตัวในบิตเครื่องหมาย
เลขฐานสอง 0000111 มีรหัสส่งคืน 0.0000111
เลขฐานสอง 0000010 มีรหัสส่งคืน 1.1111101
มาบวกเลข 000000111 และ 11111101 . กัน
โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 0 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 1

7 6 5 4 3 2 1 0
1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 1 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 2
7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 2 (1 + 1 + 1 = 11) ดังนั้นเราจึงเขียน 1 และโอน 1 ไปยังหลักที่ 3
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
1 0 0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 3 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 4
7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 1 0 0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 4 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 5
7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 1 0 0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 5 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 6
7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 1 0 0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 6 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 7
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 1 0 0

โอเวอร์โฟลว์เกิดขึ้นในบิตที่ 7 (1 + 1 = 10) ดังนั้นเราจึงเขียน 0 และโอน 1 ไปยังบิตที่ 8
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

เป็นผลให้เราได้รับ:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

มีการพกพาจากบิตป้าย มาบวกกัน (เช่น 1) กับจำนวนผลลัพธ์ (ดังนั้นจึงดำเนินการตามขั้นตอนการถ่ายโอนแบบวนซ้ำ)
เป็นผลให้เราได้รับ:
7 6 5 4 3 2 1 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1

ผลบวก: 00000101
เราได้หมายเลข 00000101 ในการแปลส่วนจำนวนเต็ม จำเป็นต้องคูณตัวเลขของตัวเลขด้วยระดับของหลักที่ตรงกัน
00000101 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *1 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 4 + 0 + 1 = 5
ผลการบวก (ในรูปแบบทศนิยม): 5

การบวกเลขฐานสองทศนิยมจริง

ในคอมพิวเตอร์ ตัวเลขใดๆ สามารถแสดงในรูปแบบทศนิยมได้ รูปแบบจุดลอยตัวจะแสดงในรูป:


ตัวอย่างเช่น ตัวเลข 10101 ในรูปแบบทศนิยมสามารถเขียนได้ดังนี้:


คอมพิวเตอร์ใช้รูปแบบปกติของสัญกรณ์ ซึ่งตำแหน่งจุลภาคจะถูกตั้งค่าก่อนเลขนัยสำคัญของแมนทิสซาเสมอ เช่น ตรงตามเงื่อนไข:
b -1 ≤|M| ตัวเลขปกติ - เป็นตัวเลขที่มีเลขนัยสำคัญหลังจุดทศนิยม (เช่น 1 ในระบบเลขฐานสอง) ตัวอย่างการทำให้เป็นมาตรฐาน:
0,00101*2 100 =0,101*2 10
111,1001*2 10 =0,111001*2 101
0,01101*2 -11 =0,1101*2 -100
11,1011*2 -101 =0,11011*2 -11

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

อัลกอริทึมการเพิ่มจุดลอยตัว:

  1. การจัดตำแหน่งคำสั่ง;
  2. การเพิ่ม mantissas ในรหัสที่แก้ไขเพิ่มเติม
  3. การทำให้เป็นมาตรฐานของผลลัพธ์

ตัวอย่าง #4
A=0.1011*2 10 , B=0.0001*2 11
1. การจัดตำแหน่งคำสั่งซื้อ
A=0.01011*2 11 , B=0.0001*2 11
2. การเพิ่ม mantissas ในรหัสที่แก้ไขเพิ่มเติม
MA เพิ่ม mod =00.01011
ม็อดเพิ่มเติม MB =00.001
00,01011
+ 00,00010
=
00,01101
A+B=0.01101*2 11
3. การทำให้เป็นมาตรฐานของผลลัพธ์
A+B=0.1101*2 10

ตัวอย่าง #3 เขียนเลขทศนิยมในรูปแบบเลขฐานสอง-ทศนิยม และเพิ่มตัวเลขสองตัวในรูปแบบเลขฐานสอง

ส่วน: สารสนเทศ

เป้า: สอนวิธีดำเนินการเลขคณิตในระบบเลขฐานสองของนักเรียน .
งาน:
เกี่ยวกับการศึกษา:
- การทำซ้ำและรวบรวมความรู้ของนักเรียนเกี่ยวกับระบบตัวเลข
- เพื่อสร้างความสามารถในการดำเนินการทางคณิตศาสตร์อย่างถูกต้องในระบบเลขฐานสองในเด็กนักเรียน
กำลังพัฒนา:
- พัฒนาความคิดเชิงตรรกะของนักเรียน
- เพื่อพัฒนาความสนใจทางปัญญาของนักเรียน

ระหว่างเรียน.

การเรียนรู้วัสดุใหม่
กฎเพิ่มเติม:
0+0=0
0+1=1
1+0=1
1+1=10
ดึงความสนใจของนักเรียนไปที่ข้อเท็จจริงที่ว่าเมื่อบวกสองหน่วยในระบบเลขฐานสอง ระเบียนจะกลายเป็น 0 และหน่วยจะถูกโอนไปยังหลักถัดไป เมื่อบวกสามหน่วย จะได้รับ 1 ในบันทึก และหน่วยจะถูกโอนไปยังหลักถัดไป (1+1+1=11)

ตัวอย่างที่ 1
101+10=111

ตัวอย่าง 2
10011+11=1110


1001+11=1100
110+110=1100

กฎการคูณ:
0*0=0
0*1=0
1*0=0
1*1=1

ตัวอย่างที่ 1
101*11=1111

คำอธิบาย:
เราคูณแต่ละหลักของปัจจัยที่สองด้วยแต่ละหลักของปัจจัยแรก ผลลัพธ์ของผลิตภัณฑ์จะถูกรวมเข้าด้วยกันตามกฎการบวกในระบบเลขฐานสอง (คณิตศาสตร์-ป.3).

ตัวอย่าง 2
1011*101=110111

การตัดสินใจ:

นักเรียนตัดสินใจด้วยตัวเองตามตัวอย่างต่อไปนี้:
1001*101=101101
1001*11=11011

กฎการลบ:
0-0=0
1-0=1
1-1=0
0-1=-1
ดึงความสนใจของนักเรียนไปที่ความจริงที่ว่า "ลบ" ในกฎข้อสุดท้ายหมายถึง - "ใช้หมวดหมู่ (1)"

ตัวอย่างที่ 1
10110-111=1111

คำอธิบาย:
การลบจะทำในลักษณะเดียวกับในวิชาคณิตศาสตร์ หากตัวเลขใน minuend น้อยกว่าหลักของ subtrahend สำหรับการลบนี้ จำเป็นต้องใช้ตัวเลข (1) เนื่องจาก 10-1=1. หากมี 0 ทางด้านซ้ายของการลบ เราจะไม่สามารถจัดอันดับได้ ในกรณีนี้ เราครองอันดับในหน่วยลบที่หน่วยที่ใกล้ที่สุดทางด้านซ้ายของการลบนี้ ในกรณีนี้ เลขศูนย์ทั้งหมดซึ่งเราไม่สามารถนำหลักได้ จะต้องเปลี่ยนเป็นหนึ่งเพราะ 0-1=-1. ขอแนะนำให้เขียนการเปลี่ยนแปลงทั้งหมดในตัวเลขที่ด้านบนของการลบนี้ ดำเนินการลบเพิ่มเติมด้วยตัวเลขที่ได้จากด้านบน

ตัวอย่าง 2
100000-11=11101

นักเรียนตัดสินใจด้วยตัวเองตามตัวอย่างต่อไปนี้:
100010-100=
101011-10111=

กฎของกอง:
การแบ่งจะดำเนินการตามกฎของคณิตศาสตร์ อย่าลืมว่าเราดำเนินการในระบบเลขฐานสอง

ตัวอย่างที่ 1
101101:1001=101

คำอธิบาย:
โดยส่วนตัวแล้ว เรากล้าเขียน 1 ตัวแรกเพราะว่า ตัวเลขในระบบเลขฐานสองไม่สามารถเริ่มต้นด้วย 0 ได้ เราคูณ 1 นี้ด้วยตัวหาร ผลลัพธ์จะถูกเขียนอย่างถูกต้องภายใต้เงินปันผล โดยพิจารณาจากความลึกของบิต เราทำการลบตามกฎของการลบในระบบเลขฐานสอง เราทำลายหลักถัดไปของเงินปันผล และเปรียบเทียบจำนวนผลลัพธ์กับตัวหาร ในกรณีนี้ จำนวนผลลัพธ์จะน้อยกว่าตัวหาร ในผลหาร เราเขียน 0 (มิฉะนั้น 1) เราลบหลักถัดไปของเงินปันผล เราได้ตัวเลขเท่ากับตัวหาร ในผลหารที่เราเขียน 1 เป็นต้น

ตัวอย่าง 2
101010:111=110

ตัวอย่างสำหรับโซลูชันอิสระ:
1001000:1000=1001
111100:1010=110

การบ้าน.
เรียกใช้การดำเนินการ:
1100+1101=
101+101=
1011*101=
111*101=
11011-110=
10001-1110=
1011010:1010=

การคำนวณทางคณิตศาสตร์ในระบบเลขตำแหน่ง

ให้เราพิจารณารายละเอียดเพิ่มเติมเกี่ยวกับการดำเนินการทางคณิตศาสตร์ในระบบเลขฐานสอง เลขคณิตของระบบเลขฐานสองขึ้นอยู่กับการใช้ตารางการบวก การลบ และการคูณตัวเลข ตัวถูกดำเนินการทางคณิตศาสตร์จะอยู่ที่แถวบนสุดและในคอลัมน์แรกของตาราง และผลลัพธ์จะอยู่ที่จุดตัดของคอลัมน์และแถว:

พิจารณาการดำเนินการแต่ละอย่างโดยละเอียด

ส่วนที่เพิ่มเข้าไป.ตารางบวกเลขฐานสองนั้นง่ายมาก ในกรณีเดียวเท่านั้น เมื่อทำการบวกเพิ่ม 1+1, จะถูกโอนไปยังตำแหน่งบน ,

การลบเมื่อดำเนินการลบ จำนวนที่น้อยกว่าจะถูกลบออกจากจำนวนที่มากกว่าด้วยค่าสัมบูรณ์เสมอและจะมีการใส่เครื่องหมายที่สอดคล้องกัน ในตารางการลบ 1 ที่มีแท่งหมายถึงเงินกู้ที่มีคำสั่งซื้อสูง

การคูณการดำเนินการคูณจะดำเนินการโดยใช้ตารางสูตรคูณตามรูปแบบปกติที่ใช้ในระบบเลขฐานสิบโดยมีการคูณตัวคูณแบบต่อเนื่องด้วยตัวเลขถัดไปของตัวคูณ

แผนก.การดำเนินการหารจะดำเนินการตามอัลกอริธึมที่คล้ายกับอัลกอริธึมการดำเนินการหารในระบบเลขฐานสิบ

การแปลงตัวเลขจากไบนารีเป็นทศนิยม

การแปลงตัวเลขจากไบนารีเป็นทศนิยมสามารถทำได้สำหรับส่วนจำนวนเต็มและเศษส่วนของตัวเลขตามอัลกอริธึมเดียวโดยการคำนวณผลรวมของผลิตภัณฑ์ของเลขฐานสองด้วยน้ำหนักของความคุ้นเคย:

11100011 2 =1*2 7 +1*2 6 +1*2 5 +0*2 4 +0*2 3 +0*2 2 +1*2 1 +1*2 0 =128+64+32+2+1=227 10

0,10100011 2 =1*2 -1 +0*2 -2 +1*2 -3 +0*2 -4 +0*2 -5 ++0*2 -6 +1*2 -7 +1*2 -8 =0.5+0.125+0.0078+0.0039=0.6367

การแปลงตัวเลขจากทศนิยมเป็นไบนารี

การแปลงตัวเลขจากระบบทศนิยมเป็นไบนารีจะดำเนินการแยกกันสำหรับส่วนจำนวนเต็มและเศษส่วนของตัวเลขตามอัลกอริทึมต่อไปนี้:

ก) เลขทศนิยมทั้งหมดหารด้วยฐาน 2 ทั้งหมด จากนั้นผลหารของการหารจำนวนเต็มทั้งหมดจะถูกหารด้วย 2 จนกว่าผลหารจะน้อยกว่าฐาน ผลลัพธ์ประกอบด้วยผลหารสุดท้ายและผลหารที่เหลือทั้งหมดของการหาร โดยเริ่มจากค่าสุดท้าย ตัวอย่างเช่น:

แปลงตัวเลข 227 เป็นรูปแบบไบนารี:

227:2=113 (เขียนเศษที่เหลือของดิวิชั่น 1 ลงในผลลัพธ์), 113:2=56 (เขียนส่วนที่เหลือของดิวิชั่น 1 ลงในผลลัพธ์), 56:2=28 (เขียนเศษที่เหลือของดิวิชั่น 0 ลงในผลลัพธ์) , 28:2=14 (เขียนเศษที่เหลือของดิวิชั่น 0 ลงในผลลัพธ์), 14:2=7 (เขียนเศษที่เหลือของดิวิชั่น 0 ลงในผลลัพธ์), 7:2=3 (เขียนส่วนที่เหลือของดิวิชั่น 1 ลงในผลลัพธ์ ), 3:2=1 (เขียนส่วนที่เหลือลงในผลลัพธ์จากการหาร 1) เราเขียนผลหารสุดท้ายในผลลัพธ์ - 1. ทั้งหมดที่เราได้รับ: 227 10 \u003d 11100011 2 ลองกลับมาตรวจสอบดู:

1*2 0 +1*2 1 +0*2 2 +0*2 3 +0*2 4 +1*2 5 +1*2 6 +1*2 7 =1+2+32+64+128=227

b) ทศนิยมถูกคูณด้วยฐาน 2 ตามลำดับ และทันทีหลังจากการคูณแต่ละครั้ง ส่วนของจำนวนเต็มที่เป็นผลลัพธ์จะถูกเขียนลงในผลลัพธ์ และไม่เกี่ยวข้องกับการคูณเพิ่มเติม (ทิ้งไป) จำนวนการดำเนินการคูณขึ้นอยู่กับความแม่นยำที่ต้องการ เช่น

มาแปลงตัวเลข 0.64 เป็นรูปแบบไบนารีกัน:

0.64*2=1.28 (ทิ้ง 1 และเขียน 1 เพื่อผลลัพธ์)

0.28*2=0.56 (เขียน 0 ลงในผลลัพธ์)

0.56*2=1.12 (ทิ้ง 1 และเขียน 1 เพื่อผลลัพธ์)

0.12*2=0.24 (เขียน 0 ลงในผลลัพธ์)

0.24*2=0.48 (เขียน 0 ลงในผลลัพธ์)

0.48*2=0.96 (เขียน 0 ลงในผลลัพธ์)

0.96*2=1.82 (เขียน 1 ลงในผลลัพธ์)

รวม: 0.64 10 =0.1010001 2

ลองกลับมาตรวจสอบดู:

1*2 -1 +0*2 -2 +1*2 -3 +0*2 -4 +0*2 -5 +0*2 -6 +1*2 -7 = 0.5*0+0.125+0+0+0+0.0078=0.6328

คอมพิวเตอร์แทนจำนวนลบ

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

ต่างจากระบบทศนิยมตรงที่ ระบบเลขฐานสองไม่มีอักขระพิเศษที่ระบุเครื่องหมายของตัวเลข: บวก (+) หรือลบ (-) ดังนั้น สองรูปแบบต่อไปนี้จึงใช้แทนตัวเลขลบไบนารี

แบบฟอร์มค่าลงนาม– ตัวเลขที่สำคัญที่สุด (ซ้าย) ถูกทำเครื่องหมายเป็นเครื่องหมายและมีข้อมูลเกี่ยวกับเครื่องหมายของตัวเลขเท่านั้น:

1 เป็นจำนวนลบ 0 เป็นจำนวนบวก

ตัวเลขที่เหลือจะถูกสงวนไว้สำหรับค่าสัมบูรณ์ของตัวเลข

5 10 = 0000 0101 2 ; -5 10 =1000 0101 2 .

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

รูปแบบของรหัสเพิ่มเติมย้อนกลับ การแปลจะดำเนินการตามอัลกอริทึมต่อไปนี้:

1) ทิ้งเครื่องหมายบิต;

2) กลับหลักทั้งหมดของตัวเลข;

3) เพิ่มรหัสที่ได้รับ;

4) คืนค่าหน่วยในบิตสัญญาณ
ตัวอย่างเช่น:

การแปลงตัวเลข -5 10

เราเขียนในรูปแบบไบนารี: 1000 0101; ทิ้งเครื่องหมายบิต: 000 0101; กลับหลักทั้งหมด: 111 1010; เพิ่มหนึ่ง: 111 1010 + 1 = 111 1011; เราคืนค่าหน่วยในเครื่องหมายบิต: 1111 1011 รวม -5 10 ในรหัสเพิ่มเติมผกผันเขียนเป็น 1111 1011

กฎสำหรับการดำเนินการเลขคณิตในระบบเลขฐานสอง

ส่วนที่เพิ่มเข้าไป.การบวกจะดำเนินการในลักษณะเดียวกับในระบบทศนิยม ล้นเล็กน้อยส่งผลให้เป็น 1 ในบิตถัดไป:

0+0=0, 0+1=1, 1+1=10;

+ 111011

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

กฎการลบในระบบเลขฐานสองอัลกอริธึมการลบโดยการเพิ่มรหัสเพิ่มเติม:

1) แปลงจำนวนลบจากแบบฟอร์มที่ลงนามเป็นรหัสเพิ่มเติม

2) ดำเนินการบวกเลขฐานสองกับตัวเลขทั้งหมด
รวมทั้งที่ลงนามโดยไม่สนใจหน่วยพกพาจากสูงสุด
ปล่อย;

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

ตัวอย่างเช่น ลองดำเนินการ 13-15=13+(-15)

1. เราแปล -15 เป็นโค้ดเพิ่มเติม:

1000 1111 –> 000 1111 -> 111 0000 -> 111 0000 +1=111 0001 -> 1111 0001

2. เพิ่ม 13 และ -15:

+11110001

3. เราแปลเป็นรูปแบบไบนารีปกติ:

1111 1110 -> 111 1110 ->000 0001 -> 000 0001+1=000 0010 -> 1000 0010 = -2 10

ดังนั้น เมื่อทำการบวกและการลบ หน่วยลอจิกเลขคณิตของโปรเซสเซอร์จะต้องทำการบวกระดับบิตด้วยการพกพา การผกผัน และตรวจสอบเครื่องหมายของเลขฐานสอง

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

ตัวอย่างเช่น ลองดำเนินการ: 15-13=15+(-13)

1. เราแปล -13 เป็นรหัสเพิ่มเติม:

1000 1101 –> 000 1101 -> 111 0010 -> 111 0010 +1=111 0011 -> 1111 0011

2. เพิ่ม 15 และ -13:

+11110011

3. บิตเครื่องหมายคือ 0, ไม่จำเป็นต้องมีการแปลย้อนกลับ เช่น ผลลัพธ์คือ 0000 0010=2 10

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

ตัวอย่างเช่น ลองคูณ 6 (0000 0110) ด้วย 5 (0000 0101):

*00000101

(คูณด้วย 1) +00000110

(คูณด้วย 0) 1

(คูณด้วย 1) + 0000011011

ตรวจสอบ: 0001 1110=0*2 0 +1*2 1 +1*2 2 +1*2 3 +1*2 4 =2+4+8=16=30

ตัวอย่างเช่น ลองคูณ 15 (0000 1111) ด้วย 13 (0000 1101):

*00001101

(คูณด้วย 1) +00001111

(คูณด้วย 0) 1

(คูณด้วย 1) +0000111111

(คูณด้วย 1) + 00001111111

ตรวจสอบ: 1100 0011=1*2 7 +1*2 6 +0*2 5 +0*2 4 +0*2 3 +0*2 2 +1*2 1 +1*2 0 =1+2+64 +128=195

แผนก.เมื่อทำการหาร การดำเนินการลบจะดำเนินการหลายครั้ง ดังนั้น คุณต้องหารหัสตัวหารเพิ่มเติมก่อน การแบ่งทำได้โดยการลบและขยับซ้ำๆ ตัวอย่างเช่น ลองหารตัวเลข 195 (1100 0011) ด้วย 15 (0000 1111) รหัสเพิ่มเติมของตัวเลขคือ 0000 1111 -> 11110001 เนื่องจากตามกฎของการหาร เงินปันผลระหว่างกลางแต่ละรายการจะต้องมากกว่าตัวหาร เราจึงเลือกหมายเลข 11000 เป็นเงินปันผลแรก กล่าวคือ ตัวเลขห้าหลักแรกและเพิ่มศูนย์สามตัวทางด้านซ้าย เสริมการปันผลเป็น 8 หลัก จากนั้นเราเพิ่มด้วยรหัสเพิ่มเติมของเงินปันผลและป้อนหน่วยลงในผลลัพธ์ หากเงินปันผลครั้งต่อไปหลังจากการรื้อถอนหลักถัดไปมีค่าน้อยกว่าตัวหาร จะมีการป้อนศูนย์ในผลลัพธ์ และอีกหนึ่งหลักจากเงินปันผลเดิมจะถูกทำลายลงในเงินปันผล