Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图解计算机中数据的表示形式

图解计算机中数据的表示形式

作者头像
冰河
发布于 2021-02-05 08:29:01
发布于 2021-02-05 08:29:01
3K02
代码可运行
举报
文章被收录于专栏:冰河技术冰河技术
运行总次数:2
代码可运行

作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:

https://github.com/sunshinelyz/mykit-delay

PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码。

写在前面

应很多小伙伴的要求,我开了一个新的专题【程序员进阶系列】,在这个专题中,我会跟大家分享有关计算机和软件的一系列 底层 知识,让小伙伴们更好的理解计算机的底层架构知识,能够更好的提高自身的编程能力和软件设计能力。本篇就作为整个专题的开篇,希望能够为小伙伴们带来实质性的帮助。

数据的表示

在计算机中,所有的数据都是以二进制的形式进行表示的,也就是说,在计算机中使用0和1来表示所有的数据。而我们日常生活中的数字都是10进制的,那我们平时使用的数字如果在计算机中表示时就需要进行进制的转换。

进制转换

R进制转10进制

R进制转10进制可以使用按权展开的方法,具体的操作就是:将R进制数的每一位数值使用R^k^表示,底数是R,指数是k。其中,k与该位和小数点之间的位置有关。当这个位置位于小数据左边时,k的值是从小数点向左依次数的个数,需要注意的是:紧邻小数点的数字位置为0,接下来是1,2...依次类推。同样的,如果这个位置在小数点的右边,则紧邻小数据点位置的数字从-1开始,依次向右数为-2,-3等等,依此类推。

例如,我们给出一个二进制数字,11010101.01,转换为10进制数字为:1 x 2^7^ + 1 x 2^6^ + 0 x 2^5^ + 1 x 2^4^ + 0 x 2^3^ + 1 x 2^2^ + 0 x 2^1^ + 1 x 2^0^ + 0 x 2^-1^ + 1 x 2^-2^。

注:2^7^表示2的7次方。

再比如,我们给出一个八进制数,76128.01,转换为10进制数字为:7 x 8^4^ +6 x 8^3^ + 1 x 8^2^ + 2 x 8^1^ + 8 x 8^0^ + 0 x 8^-1^ + 1 x 8^-2^

十进制转R进制

十进制转R进制就比较简单了,这里我们可以使用短除法。

例如,将十进制数字69转换为二进制的过程如下所示。

得出短除的结果后,我们需要将余数倒过来排列即为十进制69转换为二进制的结果,所以结果数据为:1000101。

二进制与八进制互转

二进制转八进制时,每三位二进制数表示一个八进制数。因为在八进制中,总共有8个基数,分别是0~7,逢8进1。而如果要使用二进制来表示时,0的二进制为000,7的二进制为111,所以,每三位二进制数对应一位八进制数。反过来,每一位八进制数对应三位二进制数。

具体的划分策略是,从二进制的低位开始,从低到高,也就是从右向左,每三位二进制数对应一个八进制数,不足三位的前面补0,例如,我们将二进制数:10001110转化为八进制数的过程,具体如下所示。

所以,二进制数10001110转化为八进制数的结果为216。

同理,八进制转二进制与二进制转八进制正好相反,八进制的每一位对应三位的二进制数。也就是说,将八进制数的每一位转化成三位的二进制数即可。

二进制与十六进制互转

在十六进制表示的数字中,总共有15个基数,为0~15,逢16进1。如果要将二进制数转化为十六进制数时,首先要弄清楚每位十六进制数需要多少为二进制数表示。在十六进制中,最大的基数为15,15的二进制表示为:1111,最小的基数为0,0的二进制数为0000,也就是说,十六进制的基础使用二进制表示为 0000~1111,所以,每位十六进制数需要四位二进制数表示。

从二进制数的低位开始,也就是从右侧开始,每四位二进制数对应一位十六进制数。

例如,我们需要将二进制数10001110转换为十六进制数,如下所示。

注意:在十六进制中,分别使用A,B,C,D,E,F代表10,11,12,13,14,15。

所以,二进制10001110转化为十六进制的结果为8E。

十六进制转二进制与二进制转十六进制正好相反,将十六进制的每一位转换为四位二进制数即可。

数据的码制

在计算机中,带符号的机器数可以采用原码、反码、补码和移码表示,这些编码称为码制。

原码

在原码表示中,最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值,数值0的原码有两种表示形式:

= 0 0000000,

= 1 0000000。

反码

在反码中,最高位是符号位,0表示正号,1表示负号,正数的反码与原码相同,负数的反码是其绝对值按位取反。数值0的反码有两种表示形式:

= 0 0000000,

= 1 1111111。

补码

在补码中,最高位是符号位,0表示正号,1表示负号,正数的补码与原码和反码相同,负数的补码等于其反码的末位加1。在补码的表示中,0有唯一的补码:

= 0 0000000,

= 0 0000000。

移码

移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。如果机器字长为n,规定偏移量为 2^n-1^。

实际上,在偏移 2^n-1^的情况下,只要将补码的符号位取反就可以获得相应的移码。

码制总结

我们来看下面的表格,这里,我直接使用八位的二进制数来表示相应的数值。

码制

数值1

数值-1

1-1

原码

0000 0001

1000 0001

1000 0010

反码

0000 0001

1111 1110

1111 1111

补码

0000 0001

1111 1111

0000 0000

移码

1000 0001

0111 1111

1000 0000

通过表格我们发现:

  • 正数的原码、反码和补码是相同的。
  • 负数的反码是原码除符号位外,其他位分别取反;
  • 负数的补码是其反码的末位加1。
  • 移码是在补码的基础上符号位取反得到。

在负数的原码和补码的转换中,我们可以得出如下结论:

  • 负数的原码转补码是在原码的基础上除符号位外,其他位取反,然后末位加1。
  • 负数的补码转原码是在补码的基础上除符号位外,其他位取反,然后末位加1。

也就是说,负数的原码转补码和补码转原码的规则是一样的。小伙伴们可以根据表格自行验证

计算机使用补码进行加减法运算

我们再来看表格的最后一列 1-1,在计算机中,表示为1+(-1),其正确的结果应该为0。接下来,我们分别分析下使用原码、反码、补码和移码进行加减法运算的结果的正确性。

  • 表格的第一行中,使用原码计算的结果为1000 0010,转换为10进制数为-2,1-1不等于-2,所以,使用原码进行加减法运算的结果是错误的。
  • 在反码中,计算1-1的结果为1111 1111,显然结果不为0,所以,使用反码进行加减法运算的结果是错误的。
  • 在补码中,计算1-1的结果为0000 0000,结果为0,所以,使用补码进行加减法运算的结果是正确的。
  • 在移码中,计算1-1的结果为1000 0000,结果为-0,虽然-0也等于0,但是严格意义来讲,这个结果是不正确的。

在计算机中,不会使用移码进行加减法运算,移码用于浮点数的阶码。

好了,今天就到这儿吧,我是冰河,大家有啥问题可以在下方留言

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冰河技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Trae AI IDE深度评测:全栈开发者的智能编程革命
在GPT-4o与Claude 3引领的智能编程浪潮中,Trae AI IDE以其独特的架构设计脱颖而出。系统采用微内核+插件化架构(Microkernel Architecture),通过核心调度引擎实现多模型的无缝切换。以下展示其核心配置文件实现:
Lethehong
2025/04/17
2240
Trae AI IDE深度评测:全栈开发者的智能编程革命
后端老兵的AI进化论:如何借力大模型浪潮重构技术护城河
随着DeepSeek-R1的爆火,突然意识到一个残酷事实:曾经引以为傲的分布式架构设计能力,正在被大模型自动生成架构图的能力解构;引经据典的性能优化经验,逐渐被AI实时诊断系统取代。作为10年+后端Lnmp老兵,我深刻感受到——技术进化的齿轮正被AI重新锻造,想要成为未来的幸存者必须拥抱AI,做AI的朋友。
stark张宇
2025/03/15
3441
使用Trae AI IDE,轻松实现交友聊天功能
在软件开发过程中,需求分析、代码编写和调试优化是三个关键环节,对于开发者来说,时间就是金钱,但是在实际开发过程中,这些环节往往存在效率瓶颈。需求分析、代码编写和调试优化往往耗时过长,比如在需求分析阶段,我们需要与产品经理、设计师反复沟通,梳理需求并制定开发计划方案;又如在代码编写阶段的时候,复杂的业务逻辑和大量的重复代码让大家疲惫不堪,非常“无奈”;再如在调试优化阶段,频繁的错误排查和性能优化更是令人头疼,不仅浪费时间,还可能引入新的问题,尤其是遇到一些“无厘头”的问题。个人觉得,这些痛点不仅降低了开发效率,还增加了项目的交付风险,也是程序员日常工作中严重影响开发效率的“拦路虎”。
三掌柜
2025/02/26
5802
使用Trae AI IDE,轻松实现交友聊天功能
Trae智能协作AI编程工具IDE:如何在MacBook Pro下载、安装和配置使用Trae?
Trae智能协作AI编程工具IDE:如何在MacBook Pro下载、安装和配置使用Trae?
猫头虎
2025/03/03
6720
Trae智能协作AI编程工具IDE:如何在MacBook Pro下载、安装和配置使用Trae?
Trae AI编程快速上手:半小时完成年会抽奖程序
朋友们,今天听说字节上线了Trae 国内版,对标Claude的一款AI智能IDE,晚上迫不及待的下载安装,并使用trae来创建一个年会抽奖程序(方便和cline做对比)。废话不多说,马上奉上体验报告!
拓荒者IT
2025/03/04
2440
Trae AI编程快速上手:半小时完成年会抽奖程序
Trae 开发工具与使用技巧
前不久,字节重磅推出 AI 原生 IDE Trae,有了这款工具,程序员的开发效率得到了大大的提升,如何你是程序员,还没有使用起来,那 V 哥建议你即刻起马上安装上,谁用谁知道。废话不多说,一起来看看它的牛逼之处。
威哥爱编程
2025/03/17
2950
2025 最新!Trae 排队难题专业级解决方案:高效 API 中转服务优化体验
作为字节跳动推出的 AI 编程助手,Trae 凭借强大的代码生成能力与全面的语言支持,迅速成为开发者群体中的热门工具。然而,随着用户规模急剧增长,排队等待问题逐渐成为使用瓶颈。根据 GitHub 社区反馈,用户普遍面临以下困扰:
用户11637544
2025/04/29
2230
一键开启AI编程新纪元:Windows版Trae初体验
继火爆全网的Cursor之后,字节也推出了Trae AI工具。但是前面只支持Mac OS版本,Windows版本于今天2025年2月17日正式发布,下班了赶紧下载体验一下。作为对标Cursor和windsurf的IDE,也是作为国产(第一款?)为中文开发者量身定制的工具,可谓是中文开发者的福音。
有一只柴犬
2025/02/17
1.6K4
一键开启AI编程新纪元:Windows版Trae初体验
DeepSeek 点燃AI编程新战局,深度探讨编程范式变迁与实践
DeepSeek 的横空出世,在全球范围内掀起了新一轮的 AI 热潮。惊艳的代码生成能力,对复杂算法的深刻理解……AI 驱动的编程时代,是否已经悄然来临?AI 编程助手,究竟能帮我们到什么程度?AI“程序员”能突破人类思维的局限吗?
深度学习与Python
2025/02/21
2390
DeepSeek 点燃AI编程新战局,深度探讨编程范式变迁与实践
AI巨头集体放大招!DeepSeek优化、豆包变强、ChatGPT画图不靠DALL·E、Gemini 2.5挑战GPT-5?
3月25日,DeepSeek官方宣布其DeepSeek-V3模型完成了小版本升级,版本号更新为DeepSeek-V3-0324。用户可以通过官方网页、App或小程序访问对话界面,关闭“深度思考”功能以体验新版模型。API接口和使用方式保持不变。
福大大架构师每日一题
2025/03/31
1960
AI巨头集体放大招!DeepSeek优化、豆包变强、ChatGPT画图不靠DALL·E、Gemini 2.5挑战GPT-5?
腾讯云大模型知识引擎 + DeepSeek:打造懒人专属的谷歌浏览器翻译插件
在这个信息爆炸的时代,互联网就像一个巨大的知识宝库,而我,一个对新知识充满渴望的探索者,每天都在这片海洋中遨游。我热爱阅读各种英文网站,从科技前沿到文化趣闻,从学术研究到生活小技巧,无一不让我着迷。然而,最近我遇到了一个小小的烦恼——英文翻译。
LucianaiB
2025/03/02
5253
腾讯云大模型知识引擎 + DeepSeek:打造懒人专属的谷歌浏览器翻译插件
不会编程也能开发 Web 应用,小学生都能学会的 AI IDE
文章里提到的 AI 辅助编程的方法已经过时了。现在流行的 AI IDE,已经用不着从 IDE 切换到浏览器,向大模型发出指令,而是直接在 IDE 的编辑界面内,实时同大模型通过对话的方式进行交互。这些 IDE 同大模型的对话,能够以 IDE 内的项目工程文件作为上下文,因此大模型给出的回复更加精准。同时 IDE 能够根据大模型的回复,自动且实时修改项目工程文件。这种区别于传统 「对话-手动修改」工作方式的全新模式,称为 Builder 模式。
编程小妖女
2025/03/07
1240
云端IDE如何重定义开发体验
豆包 MarsCode 编程助手支持的 IDE: 支持Visual Studio Code 1.67.0及以上版本,以及JetBrains系列IDE,如IntelliJ IDEA、Pycharm等,版本要求为221.5080.210及以上。
努力的小雨
2024/07/24
2320
【颠覆传统开发】AI 编程师 DeepSeek 让贪吃蛇脱胎换骨
【颠覆传统开发】AI竟让贪吃蛇进化成星际争霸?手把手教你用DeepSeek打造史上最硬核贪吃蛇!
小白的大数据之旅
2025/03/30
1430
【颠覆传统开发】AI 编程师 DeepSeek 让贪吃蛇脱胎换骨
YYDS!腾讯云 AI 代码助手,这才是真正的编程神器!
腾讯云 AI 代码助手是一款由腾讯云推出的智能编程工具,旨在帮助开发者提高编程效率、优化代码质量,并简化开发流程。它基于先进的人工智能技术,能够理解开发者的意图,并提供实时的代码建议、自动生成代码片段,以及快速定位和修复代码中的错误。
Lion 莱恩呀
2025/02/28
5550
YYDS!腾讯云 AI 代码助手,这才是真正的编程神器!
DeepSeek-R1 x VS Code:AI编程助手的深度整合实践
在2024年的技术浪潮中,DeepSeek-R1与VS Code的深度整合标志着智能编程工具从"辅助插件"到"核心生产力引擎"的质变。本文基于6个月的真实项目实践(含3个商业级项目、12个开源贡献),深入解析这一组合如何重构开发工作流。通过量化数据与质性分析,揭示其在代码质量、开发效率、知识管理三大维度的突破性表现。
Lethehong
2025/03/03
2040
DeepSeek-R1 x VS Code:AI编程助手的深度整合实践
实测完DeepSeek发布的新模型,我觉得AI编程的全民普惠时刻到来了。
昨天晚上,他们的v3模型,有了一波更新,版本号到了DeepSeek-V3-0324,而且是直接开源的。
数字生命卡兹克
2025/04/14
520
实测完DeepSeek发布的新模型,我觉得AI编程的全民普惠时刻到来了。
深度解析DeepSeek:我是如何理解这款国产AI黑马的
作为一个常年与代码打交道的开发者,我至今记得第一次用GPT-4写Python脚本时的震撼——但每分钟燃烧的API费用更让我肉疼。直到去年DeepSeek横空出世,这个由杭州团队开发的AI大模型,竟以1/50的推理成本实现媲美GPT-4o的效果。今天,就让我们拆解它的技术内核,看看中国人如何用"聪明的穷办法"改写AI游戏规则。
Echo_Wish
2025/03/11
1600
深度解析DeepSeek:我是如何理解这款国产AI黑马的
腾讯云AI代码助手3.0评测体验:搭载DeepSeek-V3-0324模型,开发效率提升100倍!
随着软件开发的不断进步,开发者们常常面临着重复劳动、代码调试和高强度的需求压力。腾讯云AI代码助手搭载了最新的DeepSeek-V3-0324模型,这一强大工具通过深度学习和智能推理,为开发者带来了前所未有的便利。此次评测将详细介绍这一工具如何助力开发者提升编程效率,降低出错率。
猫头虎
2025/04/02
2870
腾讯云HAI部署DeepSeek结合Ollama API搭建智能对话系统
本文将详细介绍如何在腾讯云HAI平台上部署DeepSeek模型,并配置使用Ollama API服务以实现对外部请求的支持。通过对前期准备、部署流程、API服务配置及使用的详细阐述,希望能为读者提供一个全面且实用的指南,助力AI应用的高效开发和部署。
Front_Yue
2025/02/10
8265
腾讯云HAI部署DeepSeek结合Ollama API搭建智能对话系统
推荐阅读
相关推荐
Trae AI IDE深度评测:全栈开发者的智能编程革命
更多 >
LV.3
公众号:猫头虎技术团队职业: 全栈软件工程师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验