type
status
slug
summary
tags
category
password
date
icon

Number Systems

notion image

Binary Arithmetic

  • Single Bit Addition with Carry
    • notion image
  • Multiple Bit Addition
notion image
  • Single Bit Subtraction with Borrow
  • Multiple Bit Subtraction
  • Multiplication
  • BCD Addition
 

Converting Decimal to Binary

Method 1
Subtract the largest power of 2 not exceeding the number
Repeat, subtracting from the prior remainder and recording the power, until the remainder is zero
Place 1's in the positions in the binary result corresponding to the powers recorded; in all other positions place 0's
notion image
Method 2
  • Convert the Integer Part
  • Convert the Fraction Part
  • Join the two results with a radix point

Conversion Details

  • To Convert the Integral Part:
Repeatedly divide the number by the new radix and save the remainder. The digits for the new radix are the remainder in reverse order of their computation. If the new radix is more than 10, then convert all remainder exceed 10 to digits A, B, ...
  • To Convert the Fraction Part:
Repeatedly multiply the fraction by the new radix and save the integer digits that result. The digits for the new radix are the Integer digits in order of their computation. If the new radix is more than 10, then convert all integers exceeding 10 to digits A, B, ...

Q: What if the fractional part can't become 0 as a result of the repeated multiplications?

Solution: Specify the number of bits to the right of the radix point and round or truncate to this number.

notion image

Octal (Hexadecimal) to Binary and Back

  • Example:
notion image
🔑
8进制→2进制:将每个数字顺次展开,如果遇见末尾带0的情况,可以选择不保留,也可以选择保留0 2进制→8进制:整数部分和浮点数部分分情况进行讨论,如果遇见无法凑齐的情况,大胆去补充0即可 16进制→2进制:将16进制每个数字进行4位顺次展开的操作 2进制→16进制:方法与2进制→8进制的方法相同 8进制→16进制:8进制的数先转换为2进制,然后再转换为16进制
 
notion image
使用2进制,编码M个数;如果是以r为base,对M个元素进行编码,需要:
notion image

More Binary Codes

  • You can represent 4 elements in radix r=2 with n=2 digits: (00, 01, 10, 11).
  • You can represent 4 elements in radix r=2 with n=4 digits: (0001, 0010, 0100, 1000).
  • This second code is called a "One-hot code".
🔑
把每一个二进制数位当作是一个开关,每个位数代表一种状态
  • One-hot encoding consists in using one bit representing each state.
notion image
  • 最常用的编码方式是8421
  • excess3编码方式
    • Excess-3编码方式的主要好处是它可以防止数字信号在传输过程中的误码。在Excess-3编码中,每个十进制数字被表示为4位二进制码,且每个数字的编码都不与相邻数字的编码相似。这种差异性使得在传输时,即使发生了单一位错误,接收端也能够准确地识别出传输的数字。这种冗余性使得Excess-3编码在数字通信中具有良好的误码检测和纠正能力。

Binary Coded Decimal (BCD)

  • The BCD code is the 8, 4, 2, 1 code.
  • 8, 4, 2, and 1 is weights
  • BCD is a weighted code
  • This code is the simplest, most intuitive binary code for decimal digits and uses the same powers of 2 as a binary number, but only encodes the first ten values from 0 to 9
BCD是一种权重编码的方式
BCD编码的数字只用0-9
因此,10-15的数字不会再BCD编码中出现

Q: How to distinguish between Conversion and Coding?

Conversion or Coding?

  • Conversion is to convert a decimal number into a binary number.
  • Coding is to convert every decimal digit into a binary number.
编码是针对于十进制的每一个数位而言的
转换时采用上面我们所提到的形式进行转换的
notion image
  • BCD的加法运算:
notion image
步骤
  1. 先将两个数字转换为BCD编码
  1. 从右往左进行操作运算
  1. 如果计算之后出现了10-15的数字,考虑+6进行进位的操作
    1. 🐱注意:不能直接进位,必须先➕6之后才能进行进6操作
  1. 必须先➕6之后才能产生carry,然后再进行1进位的操作
  1. 从而保证BCD编码是正确的

Error-Detection Methods(后期十分重要)

  • Parity Bit Error-Detection Codes
    • Parity is an extra bit appended onto the code word to make the number of 1's odd or even.
    • Even Parity: the number of 1's in the code word is even.
    • Odd Parity: the number of 1's in the code word is odd.
增添一个额外的位数,确保添加之后出现1的次数为奇数/偶数
如果添加之后所出现的1的次数是偶数,那么是偶脚链
notion image

Gray Code

notion image
Gray编码的主要优势在于相邻数值的编码仅有一个比特位的差异。
这种特性使得在数字信号传输或旋转编码器等应用中,当仅有一个比特位发生变化时,可以避免由于传输噪声或震动等原因引起的多比特位错误。这种特性对于需要高精度和稳定性的系统非常重要,尤其是在需要避免误解的情况下,例如在机器人控制、编码器读数、通信系统等领域。
2进制
Gray编码
0000
0000
0001
0001
0010
0011
0011
0010
0100
0110
0101
0111
0110
0101
0111
0100
1000
1100
1001
1101
notion image
格雷编码的转换方法
 
 
CS面试经验分享数字逻辑设计Lec02
Loading...
fufu酱
fufu酱
一个爱折腾的大学生
公告
👋
欢迎 欢迎来到fufu酱的blog! 💞️我是22级浙江大学竺可桢学院计算机科学与技术专业的学生 一个爱折腾的大学生 🌱我会在这个网站上更新我的笔记和工具分享 🌈目前all in MLLM 📫你可以用下面的方式联系到我
🍀
今後ともよろしくお願いします