首页 > 基础知识 > 计算机基础知识 整数和浮点数转二进制

计算机基础知识 整数和浮点数转二进制

2025-03-09 09:36:53

一、整数转二进制

1. 正整数转换

方法:除二取余法(从低位到高位逆序排列)。
示例:将十进制数 10 转换为二进制。

  • 10 ÷ 2 = 5 余 0
  • 5 ÷ 2 = 2 余 1
  • 2 ÷ 2 = 1 余 0
  • 1 ÷ 2 = 0 余 1
  • 结果1010(逆序取余)。

2. 负整数转换

方法:补码表示法(符号位 + 数值位的补码)。
步骤

  1. 取绝对值的二进制。
  2. 按位取反(原码→反码)。
  3. 加 1(反码→补码)。
    示例:将十进制数 -5 转换为 8 位二进制补码。
  • 5 的原码:00000101
  • 反码:11111010
  • 补码:11111011
  • 结果11111011

3. 溢出处理

若数值超出位数限制(如 8 位二进制最大值为 127),需扩展符号位或报错。

二、浮点数转二进制(IEEE 754 标准)

1. 单精度浮点数(32 位)

格式:符号位(1 位) + 阶码(8 位) + 尾数(23 位)。
步骤

  1. 将十进制浮点数分解为符号、整数部分和小数部分。
  2. 转换为二进制科学计数法(形如 1.xxxx × 2^E)。
  3. 计算阶码(实际指数 + 127),转换为 8 位二进制。
  4. 提取尾数(小数点后的 23 位,不足补零)。

示例:将 3.14 转换为单精度浮点数。

  • 步骤 1:符号位为 0(正数)。
  • 步骤 2:整数部分 3 → 11,小数部分 0.14 → 转换为二进制(0.00100011110101110000101)。
  • 步骤 3:二进制科学计数法为 1.10010001111010111000010 × 2^1,阶码为 1 + 127 = 128 → 10000000
  • 步骤 4:尾数为 10010001111010111000010(截取 23 位)。
  • 最终结果
    符号位 | 阶码      | 尾数
    0      | 10000000  | 10010001111010111000010
    
    二进制表示为:0 10000000 10010001111010111000010

2. 双精度浮点数(64 位)

格式:符号位(1 位) + 阶码(11 位) + 尾数(52 位)。
步骤类似单精度,但阶码偏移量为 1023,尾数保留 52 位。

三、特殊值处理

  • :符号位为 0,阶码和尾数全零。
  • 无穷大:符号位任意,阶码全 1,尾数全零。
  • 非数(NaN):符号位任意,阶码全 1,尾数非零。
     

四、总结

类型 转换方法 示例(十进制→二进制)
正整数 除二取余法 10 → 1010
负整数 补码(符号位 + 数值位取反+1) -5 → 11111011
浮点数 IEEE 754 标准(符号+阶码+尾数) 3.14 → 0 10000000 10010001111010111000010

注意:浮点数转换可能存在精度丢失(如 0.1 的二进制为无限循环小数)。

使用 Ctrl+D 可将网站添加到书签
收藏网站
扫描二维码
关注早实习微信公众号
官方公众号
Top