C语言基础编程实战-课件 【ch06】进制和位运算符_第1页
C语言基础编程实战-课件 【ch06】进制和位运算符_第2页
C语言基础编程实战-课件 【ch06】进制和位运算符_第3页
C语言基础编程实战-课件 【ch06】进制和位运算符_第4页
C语言基础编程实战-课件 【ch06】进制和位运算符_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

进制和位运算符“C语言基础编程实战第6章01二进制在C语言中,可以使用二进制表示法来表示整数的输入和输出。整数输出一个二进制数,可以运用printf()函数和格式说明符“%b”来实现。二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制是计算机科学的基础,也是计算机系统的基本组成部分。十进制和二进制互转十进制二进制0000000001000000012000000103000000114000001005000001016000001107000001118000010009000010011000001010十进制转换为二进制的手工计算方法一个十进制数转换为二进制数要分整数部分和小数部分分别转换,最后组合到一起。1.整数部分采用“除2取余,逆序排列”法:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0为止;然后将先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。2.小数部分采用“乘2取整”法:用2乘以十进制小数,可以得到积,将积中的整数部分取出;再用2乘余下的小数部分,又得到一个积,将积中的整数部分取出,如此进行,直到积中的小数部分为0为止。此时0或1为二进制的最后一位,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取得的整数作为二进制小数的高位有效位,后取得的整数作为低位有效位。十进制数13转换为二进制数1101的过程如下。1.13/2=6余1;2.6/2=3余0;3.3/2=1余1;4.1/2=0余1。将余数从下往上连接起来是1101,即二进制数是1101。十进制数0.625转换为二进制数0.101的过程如下。1.小数部分:0.625×2=1.25,取出整数1作为二进制小数的最高位有效位;2.0.25×2=0.5,取出整数0作为低位有效位;3.0.5×2=1,取出整数1作为高位有效位。因此,十进制数0.625转换为二进制数是0.101。02十进制十进制是一种计数方法,它基于10个基本数字(0~9)进行计数。每个数字代表一个固定数值,称为位权。例如,十进制数123表示为1×102+2×102+3×100=100+20+3。在十进制中,每个位置的值是不同的,从右到左,每个位置的值依次增加。例如,在十进制数中,个位表示1,十位表示10,百位表示100,以此类推。二进制转换为十进制的手工计算方法:从二进制数的右边开始,从右到左,将每一位数字乘以2的幂(0次幂、1次幂、2次幂等),然后将得到的所有乘积相加。例如,将二进制数1101转换为十进制数的过程如下。1*2^3=81*2^2=40*2^1=01*2^0=18+4+0+1=13经过计算,二进制数1101转换为十进制数是13。03十六进制在C语言中,十六进制数是以0x或0X开头的数字字符串。它由0~9的数字和A~F的字母(不区分大小写)组成,表示成十六进制的数值。%X是C语言中的格式说明符,用于将数据以十六进制格式输出。例如,十六进制数1A3B可以转换为十进制数67625。04按位与运算符学习了二进制、十进制和十六进制的知识后,读者对进制已经有了初步的理解,才能学懂位运算符的知识。按位与运算符(&)是一种二进制运算符,它对两个操作数的每一个二进制位进行比较,只有当两个操作数的每个二进制位都相同且为1时,结果才为1,否则为0。也就是说,1&1为1,1&0为0,0&1为0,0&0为0。例如,假设A=10101100,B=11001100,则A&B的结果为10001100。计算过程:

A=10101100&B=11001100结果为10001100。05按位或运算符按位或运算符(|)是一种二进制运算符,它对两个操作数的每一个二进制位进行比较,只要两个操作数的对应位有一个为1,结果位就为1。也就是说,1|1为1,1|0为1,0|1为1。例如,假设A=10101100,B=11001100,则A|B的结果为11101100。计算过程:

A=10101100|B=11001100结果为11101100。06按位异或运算符按位异或运算符(^)是一种二进制运算符,它对两个操作数的每一个二进制位进行比较,当两个操作数的对应位不同时,结果为1,相同时结果为0。也就是说,1|1为0,0|0为0,1|0为1,0|1为1。例如,假设A=10101100,B=11001100,则A^B的结果为01100000。计算过程:

A=10101100^B=11001100结果为01100000。07按位取反运算符按位取反运算符(~)是一种二进制运算符,它对一个操作数的每个二进制位进行取反操作,即把1变为0,把0变为1。也就是说,A=1010,~A=0101。示例:A=1010,~A=0101。A=1111,~A=0000。A=1110,~A=0001。A=1100,~A=0011。A=1000,~A=0111。A=0000,~A=1111。08按位左移运算符按位左移运算符(<<)是将二进制表示的整数左移指定的位数。将一个数的二进制表示向左移动指定的位数,并在右侧用零填充空出的位。例如,将整数10(二进制表示为1010)左移2位,得到的结果是40。计算过程如下:1.十进制数10转换为二进制数为1010。2.左移两位(右侧用零填充两位0)后为101000。3.二进制数101000转换为十进制数为40。09按位右移运算符按位右移运算符(>>)是指将二进制表示的整数右移指定的位数。将一个数的十进制除以2的右移位数2的次方数,然后取整。例如,右移5位,就是25;右移3位,就是23。例如,将整数10(二进制数表示为1010)右移3位,得到的结果是1。计算过程如下:1.十进制数10右移3位:23=8。2.10/8=1.25。3.在C语言中,小数点后面的数值会被忽略,所以最终结果会是1。例如,将整数10(二进制数表示为1010)右移2位,得到的结果是2。计算过程如下:1.十进制数10右移2位:22=4。2.10/4=2.5。3.在C语言中,小数点后面的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论