C语言,二进制

二进制和位运算

进制介绍

对于整数,有四种表示方式:
1)二进制:0,1 ,满 2 进 1,C 语言中没有二进制常数的表示方法。
2)十进制:0-9 ,满 10 进 1。
3)八进制:0-7 ,满 8 进 1. 以数字 0 开头表示。
4)十六进制:0-9 及 A-F,满 16 进 1. 以 0x 或 0X 开头表示。此处的 A-F 不区分大小写。[A->10 B->11 C->12 D->13 E->14 F->15 ] 如:0x21AF +1= 0X21B0

进制的图示

在这里插入图片描述
在这里插入图片描述

进制的转换

二进制转十进制

规则:从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和

案例:将二进制 1011 转换成十进制
1011 -> 1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3 = 1 + 2 + 0 + 8 = 11

八进制转十进制

规则: 从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和

案例:将0123转成十进制的数

0123 -> 3 * 8^0 + 2 * 8^1 + 1 * 8^2 + 0 * 8^3 = 3 + 16 + 64 = 83

十六进制转十进制

规则:从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。

案例:请将0x34A转成十进制的数

0x34A -> 10 * 16^0 + 4 * 16^1 + 3 * 16^2 = 10 + 64 + 768 = 842

十进制转二进制

规则: 将该数不断除以2,直到商为0为止,然后每步得到的余数倒过来,就是对应的二进制

案例:将56转成二进制

56 -> 111000

十进制转八进制

规则: 将该数不断除以8,直到商为0为止,然后每步得到的余数倒过来,就是对应的八进制

案例:将156转成八进制

156 -> 234

十进制转十六进制

规则: 将该数不断除以16,直到商为0为止,然后每步得到的余数倒过来,就是对应的十六进制

案例:将356转成十六进制

356 -> 0x164

二进制转八进制

规则: 从低位开始,将二进制制数每三位一组,转成对应的八进制数即可。

案例:请将11010101转成八进制

如果左边不够三位,可以借一个0

11 010 101 -> 0325

二进制转十六进制

规则: 从低位开始,将二进制制数每四位一组,转成对应的八进制数即可。

案例:请将11010101转成十六进制

1101 0101 -> 0x D5

八进制转二进制

规则: 将八进制数每一位,转成对应的一个三位的二进制数即可

案例:请将0237 转成二进制

0237 = 10 101 111

十六进制转二进制

规则: 将十六进制数每一位,转成对应的一个四位的二进制数即可

案例:请将0x23B 转成二进制

B = 11 -> 1011

0x23B = 10 0011 1011

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言二进制文件存储指的是使用C语言编写的程序的执行文件或者数据文件以二进制形式存储在计算机中。 在C语言中,源代码被编译成二进制机器码,这些机器码表示计算机执行指令的序列。编译器将这些指令生成为一个二进制文件,可以在操作系统上直接执行。二进制文件包含着程序的所有二进制代码,可以直接加载到内存中运行。 二进制文件的存储格式通常是特定于操作系统的,例如Windows下的可执行文件格式是PE格式,而Linux下的可执行文件格式是ELF格式。这些格式包括了二进制代码的布局、入口点地址和各个节(segment)的信息。节是二进制文件中的一部分,它包含了程序的代码、数据和其他信息。 除了可执行文件,C语言还可以生成二进制数据文件。这些数据文件可以包含各种类型的数据,例如图片、音频、视频、数据库等。数据文件的格式通常取决于其内容的特性和使用方法。 在C语言中,开发者可以通过文件操作函数来读写二进制文件。例如,使用fopen函数可以打开一个二进制文件,使用fwrite函数可以将数据写入到文件中,使用fread函数可以从文件中读取数据。这些函数可以根据需要以二进制形式读写数据,而不关心其内容的具体格式。 总而言之,C语言二进制文件存储是将源代码编译成机器码,并以特定的格式存储在计算机中的一种方式。这种存储方式可以用于生成可执行文件,也可以用于存储各种类型的二进制数据。通过文件操作函数,开发者可以方便地对二进制文件进行读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值