二进制, 十进制, 八进制, 十六进制

进制概述

进制即进位的制度.

X 进制:

加法: 某一位两个数字相加, 满 X 向高一位进一, 该位结果为两个数字之和减 X 的差.

减法: 某一位小数减大数时, 从高一位借一当 X, 加上这个小数再减大数, 即为该位的结果.

X 进制的基数为 X, 包含 X 个数字, 为 0, 1, 2, ... , X-1.

二进制 (Binary)

二进制, 基数为 2, 包含 2 个数字, 为 0, 1.

计算机内存中数据都是以二进制形式存储.

二进制加法: 某一位两个数字相加, 满二进一, 该位结果为两个数字之和减 2 的差.

二进制减法: 某一位小数减大数时, 从高一位借一当 2, 加上这个小数再减大数, 即为该位的结果.

八进制 (Octal)

八进制, 基数为 7, 包含 8 个数字, 为 0, 1, 2, 3, 4, 5, 6, 7.

八进制加法: 某一位两个数字相加, 满八进一, 该位结果为两个数字之和减 8 的差.

八进制减法: 某一位小数减大数时, 从高一位借一当 8, 加上这个小数再减大数, 即为该位的结果.

十六进制 (hexadecimal)

十六进制, 基数为 16, 包含 16 个数字, 为 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

A 表示 10, B 表示 11, C 表示 12, D 表示 13, E 表示 14, F 表示 15.

字母不区分大小写, A B C D E F 也可以写作 a b c d e f.

十六进制加法: 某一位两个数字相加, 满十六进一, 该位结果为两个数字之和减 16 的差.

十六进制减法: 某一位小数减大数时, 从高一位借一当 16, 加上这个小数再减大数, 即为该位的结果.

不同进制之间的转换

二进制, 八进制和十六进制转换为十进制

二进制, 八进制和十六进制向十进制转换时, 各位数字乘以它的位权再求和.

对于 N 进制:

  • 整数部分, 从右到左, 第 i 位的位权为 Ni-1. i 从 1 开始计数.
  • 小数部分, 从左到右, 第 j 位的位权为 N-j. j 从 1 开始计数.

此处的位权是以十进制表示的.

十进制转换为二进制, 八进制和十六进制

分成整数部分和小数部分分别转换.

如果一个十进制数同时包含整数部分和小数部分, 那么将整数部分和小数部分别转换, 然后再合并在一起即组合成对应进制的数.

整数部分

十进制整数转换为 N 进制整数遵循 “除 N 取余, 逆序排列”.

即: 用十进制整数不断除以 N, 直到商为零, 把各次余数 按照逆序从左到右 排列, 即得到 N 进制数.

例如:

小数部分

十进制小数转换成 N 进制小数遵循 “乘 N 取整, 顺序排列”.

用十进制小数不断乘以 N, 每次乘积的整数部分不变, 只用乘积的小数部分乘以 N, 直到小数部分为零. 将各次乘积的整数部分按照顺序从左到右排列, 即得到 N 进制小数.

十进制小数转换成其他进制小数, 结果可能为无限小数.

二进制, 八进制, 十六进制的互相转换

二进制整数和八进制整数的互相转换

二进制整数转换为八进制整数时, 从右到左每三位二进制数字转换为一位八进制数字, 高位不足三位时用零补齐.

八进制整数转换为二进制整数时, 从右到左每一位八进制数字转换为三位二进制数字.

二进制整数和十六进制整数的互相转换

二进制整数转换为十六进制整数时, 从右到左每四位二进制数字转换为一位十六进制数字, 高位不足四位时用零补齐.

十六进制整数转换为二进制整数时, 从右到左每一位十六进制数字转换为四位二进制数字.

C语言中的二进制, 十进制, 八进制和十六进制常量

一般的整数都默认为十进制.

通过前缀来指明是二进制, 八进制和十六进制.

八进制用前缀数字 0 来指明, 如 020 是八进制数字, 换算为十进制等于 16.

十六进制用前缀 0x 或 0X 来指明,如 0x10 或 0X10 是十六进制数字,换算为十进制等于 16.

使用不同的进制表示数字不会影响数的储存方式, 即 16, 020 和 0x10 的储存方式都一样,因为计算机内部是用二进制进行编码的.

posted @   有空  阅读(55)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示

目录导航