c语言源码补码机器码的定义,机器码的基本概念和几种进制的转换问题
直接进入正题,介绍下相关的几个概念,学计算机的都应该知道,
1.机器码:就是二进制数。
2.无符号数:不考虑正负号的机器数。
3.有符号数:考虑正负号的机器数。 注:有符号数通常规定最高位为符号位,并用0表示正,用1表示的是负余下的就是数值
下面介绍下机器码中的原码,反码,补码。
1.原码:
定义机器数本身就是源码表示法,例如:经典的例子(125),原码表示为
01111101,这里最高位是符号位。
2.反码:正数的反码就是原码,负数的反码就是将符号位以外的各位取反,得到例如:(125)原 = (125)反 =
01111101,(-125)原 = 11111101,(-125)反 = 10000010.
3.补码:正数的补码还是它的原码,负数的补码是将它的反码的末位加1,例:(125)补 = (125)原 =
01111101,(-125)原 = 11111101,(-125)反 =
10000010,(-125) = 1000011
总结上面的:正数的原码,反码,补码都相同。负数中反码除符号外取反,补码在反码末位加1即可。
下面来讲解今天遇到的问题:
《十进制负数转化成八进制和十六进制》
以网上提供 -167转换为例子,笔者在换算的时候出现了各种各样的情况,不过是第一次计算也是正常的,
先把-617用补码表示,然后再转换成八进制和十六进制(补码),下面的是网上摘下的记录:
二进制转为 8
进制,用 3 位二进制位编为一组(不够左侧补 0),然后从右边开始每三位按如下方式替换:
000 - 0, 001 - 1, 010 - 2, 011 - 3,
100 - 4, 101 - 5, 110 - 6, 111 - 7.
二进制转为16进制,用4位二进制位编为一组(不够左侧补0),然后从右边开始每四位按下方式替换
0000 - 0, 0001 - 1, 0010 - 2, 0011 - 3
0100 - 4, 0101 - 5, 0110 - 6, 0111 - 7
1000 - 8, 1001 - 9, 1010 - A, 1011 - B
1100 - C, 1101 - D, 1110 - E, 1111 - F
Turbo
C中整数是16位的,617的二进制是00000010 01101001,取反加1得到-617的补码为11111101
10010111,每3位转成1个八进制数
1111110110010111 --二进制
1 7 6 6 2 7 --八进制
c语言源码补码机器码的定义,机器码的基本概念和几种进制的转换问题相关推荐
- 16进制换成10进制 c语言 单片机,单片机入门之三种进制的转换
单片机使用的两大进制表示形式:十进制和十六进制. (这里使用十进制的数据) (这里使用十六进制的数据) 十进制一般用于运算,表示形式就是直接写,例如上面的1701. 十六进制一般用于配置单片机的寄存器 ...
- 【安全算法之SHA1】SHA1摘要运算的C语言源码实现
[安全算法之SHA1]SHA1摘要运算的C语言源码实现 概述 头文件定义 C语言版本的实现源码 测试用例 github仓库 更多参考链接 概述 大家都知道摘要算法在安全领域,也是一个特别重要的存在,而 ...
- C语言项目源码,C语言源码大全
一.C语言源码大全 C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.尽管 ...
- 【安全算法之DES】DES算法(支持ECB/CBC模式)的C语言源码实现
[安全算法之DES]DES算法(支持ECB/CBC模式)的C语言源码实现 概述 头文件定义 C语言版本的实现源码 数据分组模式:ECB模式和CBC模式 测试用例 github仓库 更多参考链接 概述 ...
- c语言原码 补码 反码,C语言 原码--反码--补码
//原码,反码,补码 #include #include //数值的表示方法--原码.反码和补码 //原码:最高位为符号位,其余各位为数值本身的绝对值 //反码: //正数:反码与原码相同 //负数: ...
- 【安全算法之SHA512】SHA512摘要运算的C语言源码实现
[安全算法之SHA512]SHA512摘要运算的C语言源码实现 概述 头文件定义 C语言版本的实现源码 测试用例 github仓库 更多参考链接 概述 大家都知道摘要算法在安全领域,也是一个特别重要的 ...
- Go语言源码分析CAS的实现和Java如出一辙
看了Go的源码CAS这块实现和java还是类似的. 关于Java的分析参考:Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现 都是使用汇编指令:LOCK+CMP ...
- golang中文文档_【译】Go 语言源码贡献官方指导文档
以前给 Go 语言项目源码提交过一些 commits,期间阅读他们的官方指导文档的时候觉得这篇指导文档可以作为绝佳的关于大型软件项目的规范管理的参考,因为最近又提交了几个 commits,就又把这篇文 ...
- 易语言php支付宝,支付宝填表登录易语言源码
支付宝填表登录易语言源码 @MS_晨星天宇.版本 2 .支持库 spec .支持库 HtmlView .程序集 窗口程序集_窗口1 .子程序 _按钮1_被单击 调试输出 (开始登录 (超文本浏览框1, ...
最新文章
- 2021-2027年中国透明导电膜玻璃行业市场研究及前瞻分析报告
- 反卷积(Transposed Convolution, Fractionally Strided Convolution or Deconvolution)
- Human Pose Estimation人体姿态估计综述调研
- 强化学习(二)—— 价值学习(Value-Based)及DQN
- 百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等
- 利用一维数组输出杨辉三角
- Thinkphp3.2 分页带中文参数报错
- Seata详解(二)
- 返回通知异常通知环绕通知
- 如何从Windows中访问Linux硬盘,干货:如何从 Windows 系统访问 Linux 文件
- 基于Labview带通滤波器设计实例演示
- 矩阵 向量 线性变换 基变换
- Mac Mounty挂载NTFS硬盘报错
- 洛谷P1789 【Mc生存】插火把
- 服务器合租速度的决定因素
- 单元测试之moles
- 2023-04-03 Linux中杀死进程kill和killall命令的区别,着重介绍killall
- LeetCode 最长公共子串
- 如何迁移GitGitolite服务器
- 夜访北京互联网公司:「码农」十点下班很正常,加班成纠纷焦点