尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[负数,补码]

[负数,补码]
📅 发布时间:2026/6/18 9:48:59

早先再CSDN写过一篇文章:最近在看python,再次复习一下:
硬件里只有固定宽度的二进制位,负数不是“单独的东西”,而是用补码(二进制的两补)来编码在同样的位宽里。核心点如下。

两补表示

  • 有符号整数用两补表示;最高位是“符号位”但本质上有权值。
  • 对于 n 位的两补数,位向量 b[n-1] ... b[0] 的数值是:
    • value = -b[n-1]*2^(n-1) + Σ_{i=0..n-2} b[i]*2^i
  • 取值范围:[-2^(n-1), 2^(n-1)-1];比如 8 位是 [-128, 127]。

负数如何得到

  • 计算规则(两补):对正数的二进制按位取反,再加 1。
  • 等价规则:-x 的位模式是 2^n - x(在 n 位宽下取模)。
  • 例子(8 位):
    • +5 → 00000101
    • 取反 → 11111010,加 1 → 11111011,所以 -5 → 11111011
    • -1 → 11111111(因为 256 - 1 = 255)
    • 最小值 -128 → 10000000;最大值 +127 → 01111111

为什么用补码

  • 加法器只需一种电路就能完成加减(减法变加法)。
  • 溢出“环绕”行为统一,最高位参与权值计算,符号扩展自然成立。

有符号 vs 无符号

  • 无符号:全位都是正权值,范围 [0, 2^n - 1]。
  • 有符号(两补):最高位是负权值,范围 [-2^(n-1), 2^(n-1)-1]。
  • NumPy:'iN' 是有符号(如 i4=int32),'uN' 是无符号(如 u4=uint32)。

与 NumPy/Pandas 的关系

  • 你在 l02.py 里用的 dtype=[('a','i4'),('b','f4'),('c','U10')]:
    • 'a' 是 int32(两补),'b' 是 float32,'c' 是最多 10 个 Unicode 字符。
  • 转成 DataFrame 时,a 列保持 int32,b 列是 float32,c 列显示为 <U10 或 object(取决于版本)。

示例代码

import numpy as npdef bin8(x):# 以 8 位二进制显示底层位模式(统一用无符号视图)return format(np.uint8(x), '08b')print("8 位两补表示示例:")
print("+5  ->", bin8(5))              # 00000101
print("-5  ->", bin8(-5))             # 11111011
print("-1  ->", bin8(-1))             # 11111111
print("+127->", bin8(127))            # 01111111
print("-128->", bin8(np.int8(-128)))  # 10000000# 有符号 vs 无符号赋值与环绕
a_int8 = np.int8(-1)
a_uint8 = np.uint8(-1)    # 取模 256,得到 255
print("int8(-1)  数值:", a_int8, "位模式:", bin8(a_int8))    # -1, 11111111
print("uint8(-1) 数值:", a_uint8, "位模式:", bin8(a_uint8))  # 255, 11111111# 溢出(环绕)示例:int8 的 127 + 1 -> -128;uint8 的 255 + 1 -> 0
print("int8 溢出: 127 + 1 =", np.int8(127) + np.int8(1), "位模式:", bin8(np.int8(127) + np.int8(1)))
print("uint8 溢出: 255 + 1 =", np.uint8(255) + np.uint8(1), "位模式:", bin8(np.uint8(255) + np.uint8(1)))# 符号扩展示例:从 8 位到 16 位
v8 = np.int8(-5)
v16 = v8.astype(np.int16)
print("符号扩展 int8(-5) -> int16:", v16)
print("16 位位模式:", format(np.uint16(v16), '016b'))  # 1111111111111011

相关新闻

  • centos7安装Elasticsearch Service Sink Connector【CDC实战系列十】
  • 2025年度阀门涂装制造厂排名:5家的阀门创新涂装厂家推荐
  • 内网即时通讯软件新选择:吱吱企业即时通讯软件的安全与协作一体化

最新新闻

  • 武汉三新职业技术学校-学校介绍以及招生专业2026年 - 武汉中职最新信息发布
  • 沧州黄金回收市场实地测评:六家正规机构横向对比 - 余生黄金回收
  • 2026长沙黄金回收避坑测评榜|不压价、无套路正规门店排名 - 奢侈品回收测评
  • LabVIEW Crypto工具包:一体化工业级加密解决方案与实战指南
  • RFT强化微调:将专家隐性知识转化为可执行评分函数
  • 高价透明省心变现,2026哈尔滨回收黄金口碑实力排名 - 名奢变现站

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号