为什么计算机采用二进制而不是八进制或者十六进制

2023-11-01

电子计算机能以极高速度进行信息处理和加工,包括数据处理和加工,而且有极大的信息存储能力。数据在计算机中以器件的物理状态表示,采用二进制数字系统,计算机处理所有的字符或符号也要用二进制编码来表示。

用二进制的优点是容易表示,运算规则简单,节省设备。人们知道,具有两种稳定状态的元件(如晶体管的导通和截止,继电器的接通和断开,电脉冲电平的高低等)容易找到,而要找到具有10种稳定状态的元件来对应十进制的10个数就困难了。二进制数的基数是2,只有0和1两个数字,逢2进1。十进制数有0,1,…9十个数字,逢10进1。


因为二进制最简单,只有0和1,计算的速度也是最快的,和计算机追求的速度不谋而合,而十六进制,十进制还是八进制都没有二进制快

 二进位制在计算机内部使用是再自然不过的。但在人机交流上,二进位制有致命的弱点——数字的书写特别冗长。例如,十进位制的100000写成二进位制成为11000011010100000。为了解决这个问题,在计算机的理论和应用中还使用两种辅助的进位制——八进位制和十六进位制。二进位制的三个数位正好记为八进位制的一个数位,这样,数字长度就只有二进位制的三分之一,与十进位制记的数长度相差不多。例如,十进位制的100000写成八进位制就是303240。十六进位制的一个数位可以代表二进位制的四个数位,这样,一个字节正好是十六进位制的两个数位。十六进位制要求使用十六个不同的符号,除了0—9十个符号外,常用A、B、C、D、E、F六个符号分别代表(十进位制的)10、11、12、13、14、15。这样,十进位制的100000写成十六进位制就是186A0。

二进位制和八进位制、二进位制和十六进位制之间的换算都十分简便,而采用八进位制和十六进位制又避免了数字冗长带来的不便,所以八进位制、十六进位制已成为人机交流中常用的记数法。 
展望未来的计算机要采用几进制?
如果未来开发出可以表示三种状态的硬件(晶体管。。。)的话可以采用八进制,开发出表示四位状态的来的话可以采用十六进制,,,,, 反正是2的正数次幂,,,,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么计算机采用二进制而不是八进制或者十六进制 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 为什么Go是一种设计糟糕的编程语言

    好吧 我承认这个标题有点放肆 我多告诉你一点 我爱肆意妄言的标题 它能够吸引注意力 不管怎样 在这篇博文中我会试图证明 Go 是一个设计得很糟糕的语言 剧透 事实上它是 我已经摆弄 Go 有几个月了 而且 我想我在六月某个时候运行了第一个
  • 正则表达式(校验规则)

    正则表达式 说明 abc a b c中任意一个字符 abc 除了abc的任意一个字符 a z a z中任意一个字符 a zA Z0 9 a zA Z0 9中任意一个字符 a z bc a z中除了bc的任意一个字符 知识点案例 String
  • 剑指Offer - 面试题6:从尾到头打印链表

    题目 输入一个链表的头节点 从尾到头反过来打印出来每个节点的值 链表节点定义如下 struct ListNode int m nKey struct ListNode m pNext 思路 栈方法 从尾到头完全符合栈的特性 我们直接拿栈来存
  • 402. Remove K Digits

    402 Remove K Digits Given a non negative integer num represented as a string remove k digits from the number so that the
  • 【知识点总结】电力电子技术——第二讲

    电力电子技术 第二讲 总结内容 逆变电路 电压型逆变电路 电流型逆变电路 直流斩波器 Buck电路 Boost电路 升降压斩波电路 Cuk斩波电路 Sepic斩波电路 Zeta斩波电路 扩展 电赛 双向DC DC电路 隔离电源 多重斩波电路
  • GDB调试器常用命令

    1 l命令 list 列出所有程序源码 2 b命令 break 用于设置断点 break main 表示在 main 函数处设置断点 break 11 在第 11 行设置断点 3 c命令用于运行到断点处 输入 c 命令程序就会运行 直到下一
  • 来聊聊DenseNet及其变体PeleeNet、VoVNet

    关注公众号 AI算法修炼营 选择 星标 公众号 精选作品 第一时间送达 前面 基础积累系列的文章讲了ResNet网络及其变体 具体可以参考文章 来聊聊ResNet及其变体 ResNet通过前层与后层的 短路连接 Shortcuts 加强了前
  • Pytorch清空显存缓冲区(torch.cuda.empty_cache)

    torch cuda empty cache 因为PyTorch是有缓存区的设置的 意思就是一个Tensor就算被释放了 进程也不会把空闲出来的显存还给GPU 而是等待下一个Tensor来填入这一片被释放的空间 所以我们用nvidia sm
  • P4环境搭建

    P4的运行环境包括以下组件 protobuf p4c behavioral model grpc PI mininet 一 安装全新的Ubuntu 在vmware上安装Ubuntu的过程这篇文章就不写了 大伙可以找其他博主的教程 我建议的版
  • 商用服务器SMP、NUMA及MPP体系介绍

    今天给大家介绍一下常见的三种商用服务器 SMP NUMA以及MPP 一 SMP详解 所谓SMP 即Symmetric Multi processor 对称多处理器结构 x86服务器及其他双路服务器就属于这种结构 PC机 手机和笔记本电脑也属
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 操作系统 — 进程的退出(exit)

    进程退出 linux下正常的退出方式 1 在main函数中使用了return返回 return之后把控制权交给调用函数 2 调用exit 或者 exit exit 之后把控制权交给系统 异常退出 1 调用abort函数 2 进程收到某个信号
  • 双重祖先【树链剖分】

    题目链接 51nod 2553 双重祖先 给定两棵有根树 两棵树均有 n个节点 且根均为 11号点 问有多少对 u v 满足 在给定的两棵树中 u均为 v的祖先 数据范围 1 105 1 首先 我们可以考虑第一棵树 向下dfs的过程中 我们
  • ng 无法加载文件 C:\Users\hl\AppData\Roaming\npm\ng.ps1 解决方法

    错误提示 一 我们在win10 系统中有一个搜索框 输入 Windos PowerShell noted 一定要选择 管理员身份运行 二 打开了命令行之后 输入 set ExecutionPolicy RemoteSigned 然后更改权限
  • Java 常用命令、文档注释、命令行参数

    目录 注释 常用命令 生成API文档 命令行参数 注释 单行注释 多 行 注 释 文档注释 一般标注在类 接口 对外暴露的成员上 描述功能 使用说明 订单业务服务 author chy xxx xxx com version 1 0 sin
  • python 出现socket.gaierror: [Errno 11004] getaddrinfo failed错误

    python 出现socket gaierror Errno 11004 getaddrinfo failed错误 报错详情 Traceback most recent call last File D JiCaiZhuanTi Case
  • 短信开发中的MT、MO是什么意思?

    MO Mobile originate MT Mobile Terminate MT 下行 即SP端下发给用户的信息 MO 上行 即用户上发给SP的信息 上行 mo提交短信到短信中心 下行 mt短信中心向特定的用户转发短信 你的短信是这样的
  • redis4.0集群搭建

    1 安装单机版Redis centos7可以yum直接安装 也可以通过源码包安装 以下仅展示源码编译安装 安装依赖 root localhost yum install gcc y 下载redis4 0 root localhost wge
  • 【习题四】【数据库原理】

    文章目录 一 单选题 二 填空题 三 简答题 Reference 一 单选题 1 表达了数据和处理过程的关系 A 数据字典 B 数据流图 C 逻辑设计 D 概念设计 正确答案 B 2 设计子模式属于数据库设计的 A 需求分析 B 概念设计
  • 为什么计算机采用二进制而不是八进制或者十六进制

    电子计算机能以极高速度进行信息处理和加工 包括数据处理和加工 而且有极大的信息存储能力 数据在计算机中以器件的物理状态表示 采用二进制数字系统 计算机处理所有的字符或符号也要用二进制编码来表示 用二进制的优点是容易表示 运算规则简单 节省设