当前位置: 首页 > news >正文

C语言基础学习(五)——进制

进位制

二进制数、位、字节与字
我们习惯于十进制的数:10,12等
一个二进制代表1位  一个位只能表示0或者1两种状态,简称bit
一个字节为8个二进制,称为8bit 位,简称BYTE 计算机存储的最小单位是字节
// 打开某个文件 看属性 文件大小 都是以B为单位1KB(千字节) = 1024B(字节)
1MB(兆字节) = 1024KB
1GB(吉字节) = 1024MB
1TB(太字节) = 1024GB

其中,B 是 Byte(字节)的缩写,是计算机文件大小的基本计算单位。一个字节通常由 8 位(bit)组成,每位是一个二进制数(0 或 1)。
例如,一个字符通常占用 1 个字节,如果是汉字,则占用 2 个字节。KB 常用来表示相对较小的文件或数据量,MB 则用于表示较大一些的文件,如文档、图片等,GB 常用于描述较大的文件集合,如大型软件安装包、电影等,而 TB 则通常用于表示非常大的存储容量,如服务器的硬盘容量等

1、进制表

C语言没有二进制常量的写法。

十进制: 逢十进一。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
二进制: 逢二进一。 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000
八进制: 逢八进一。 00 01 02 03 04 05 06 07 010 011 012 013 014 015 016 017 020
十六进制:逢十六进一。 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20
//十六进制 从10用a表示 11 是b 以此类推
//十六进制 字母不分大小写在代码中使用八进制和十六进制的常量需要使用前缀: 
八进制,前缀为0  072 010
十六进制,前缀为 0x 0x82十进制格式: %d 
八进制格式: %o %#o 打印带前缀的形式
十六进制格式:%x %#x 打印带前缀的形式

2、C语言表示

int main() 
{ int a = 100; printf("%d %o %x\n", a, a, a); return 0; 
};

所有的数据在内存中都是二进制, 不同进制的表示方式只是为了让人类阅读起来更方便。 不同的进制之间没有本质区别,只是让人类阅读的感受不一样。

3、进制之间的转换

3.1 其他进制转十进制

1)二进制转十进制

二转十: 二进制每个位上的数,与其对应的权值相乘,再将对应的结果相加。得到的就是十进制的值 。 其他进制同理

2)八进制转十进制(了解)

3.2 二进制转其他进制

二转十: 二进制每个位上的数,与其对应的权值相乘,再将对应的结果相加。得到的就是十进制的值 。二转八: 从右往左 每三位进行分割(不足三位 用0补齐)   二进制的每三位数,对应转换成八进制的一位数。 001                101                  011                = 0153
1*2^0=1    1*2^0+0*2^1+1*2^2=5     1*2^0+1*2^1+0*2^2=3二转十六:从右往左 每四位进行分割(不足四位 用0补齐)  二进制的每四个数,对应转换成十六进制的一位数。0110                                 1011           = 0x6B
0*2^0+1*2^1+1*2^2+0*2^3=6     1*2^0+1*2^1+0^2^2+1*2^3=11(b)

例:

    二进制            八进制       十六进制
011000000          0300         0xc0
11001100           0314         0xcc      
10101010           0252         0xaa            
11111100           0374         0xfc
10000111           0207         0x87

3.3 其他进制转二进制

十转二: 将十进制数,对二取余数,再将本次的商作为被除数继续对二取余,直到商为0时为止。将得到的余数,从后向前依次读出,即为转换的二进制数 


八转二: 八进制每位数,对应转换成二进制的三位数(每位数都进行十进制转为二进制操作)。
1    5    3
001 101  011十六转二: 十六进制的每位数,对应转换为二进制的四位数
0x         6    B0110    1011(短除法)
2|13
————
2| 6 。。。。1
————
2 | 3 。。。0
————
2 | 1 。。。1
————
0 。。。1
13 转为二进制:1101


文章转载自:

http://dXql85cK.bypfj.cn
http://w4uG7s8w.bypfj.cn
http://ouFwJ6fl.bypfj.cn
http://S3Jl9hJv.bypfj.cn
http://AZVcqki0.bypfj.cn
http://k61WWYCG.bypfj.cn
http://AVQIrEmr.bypfj.cn
http://p9RtaiRm.bypfj.cn
http://OsAWbFFg.bypfj.cn
http://QqjKVLGb.bypfj.cn
http://lZliGrPj.bypfj.cn
http://ZYEgtgaD.bypfj.cn
http://qAbxlQWj.bypfj.cn
http://OmCyL7RE.bypfj.cn
http://cUkhxlhJ.bypfj.cn
http://ocirlf2s.bypfj.cn
http://uAIcPWCn.bypfj.cn
http://RJ264io6.bypfj.cn
http://VG9PsyhS.bypfj.cn
http://hrwL6NEL.bypfj.cn
http://EkVviiYd.bypfj.cn
http://Bn3ErnPI.bypfj.cn
http://EDoH0Fn8.bypfj.cn
http://7rW4rv2a.bypfj.cn
http://0r41QGb5.bypfj.cn
http://gbkHx0HT.bypfj.cn
http://nHf8KZL0.bypfj.cn
http://vwNNQho9.bypfj.cn
http://kUv7XdwG.bypfj.cn
http://2V1joFKG.bypfj.cn
http://www.dtcms.com/a/387624.html

相关文章:

  • 如何在C#中将 Excel 文件(XLS/XLSX)转换为 PDF
  • 【Error】django-debug-toolbar不显示:Failed to load module script
  • Windows 版本 WDK 版本 Windows SDK Visual Studio各版本对应关系
  • WPF 快速布局技巧
  • K8S YAML 功能详解:让容器配置更灵活
  • CAD迷你看图下载安装教程(2025最新版)
  • 根据文本区域`textarea`的内容调整大小`field-sizing:content`
  • avcodec_send_packet闪退问题
  • ftrace的trace_marker使用
  • ★基于FPGA的通信基础链路开发项目汇集目录
  • SpringBoot中@Value注入失败问题解决
  • DotCore进程CPU飙高跟踪处理方案
  • PantherX2黑豹X2 armbian 编译rkmpp ffmpeg 实现CPU视频转码
  • 2、Logstash与FileBeat详解以及ELK整合详解(Logstash安装及简单实战使用)
  • ENVI系列教程(六)——自动采集控制点的 RPC 正射校正
  • 多可见光线索引导的热红外无人机图像超分辨率重建
  • CE-RED 是什么?
  • Win10上VScode 进行ssh登录服务器时免密登录
  • AWS Global Accelerator 详解:比传统 CDN 更快的全球加速方案
  • Apollo学习之预测模块二
  • Ubuntu安装qbittorrent-nox并启用远程访问webui
  • Qt QLegend详解
  • C++ 初识
  • 从零实现 Qiankun 微前端:基座应用控制子应用路由与信息交互
  • 云函数(Serverless)深度解读
  • 设计模式概述
  • 基于 TCP 协议的 C++ 计算器项目实现:从网络通信到协议封装
  • 【分布式技术】深入理解AMQP(高级消息队列协议)
  • 海外短剧分销系统开发:技术栈选型与核心模块实现指南
  • 每日前端宝藏库 | Toastify.js ✨