提示:理解这些基本操作对于深入掌握数据处理、优化算法以及底层编程至关重要。
目录
前言
在计算机科学中,进制转换和位运算是核心概念。理解这些基本操作对于深入掌握数据处理、优化算法以及底层编程至关重要。本文将从进制的基本知识入手,逐步解读各种进制转换方法和位运算的应用示例,帮助你全面掌握这些技术。
6.1 进制
6.1.1进制介绍
对于整数,有四种表示方式:
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
Ø 举例说明:
|
6.1.2进制的图示
6.2 进制的转换
6.2.1进制转换的介绍
Ø 第一组:(其它进制转十进制)
二进制转十进制
八进制转十进制
十六进制转十进制
Ø 第二组: (十进制转其它进制)
十进制转二进制
十进制转八进制
十进制转十六进制
Ø 第三组(二进制转其它进制)
二进制转八进制
二进制转十六进制
Ø 第四组(其它进制转二进制)
八进制转二进制
十六进制转二进制
6.3 二进制转换成十进制示例
6.4 八进制转换成十进制示例
6.5 十六进制转换成十进制示例
6.6 十进制转换成二进制
6.7 十进制转换成八进制
6.8 十进制转换成十六进制
6.9 二进制转换成八进制
6.10 二进制转换成十六进制
6.11 八进制转换成二进制
6.12 十六进制转换成二进制
6.13 位运算的思考题
1) 请看下面的代码段,回答 a,b,c,d,e 结果是多少?
|
2) 请回答在 C 中,下面的表达式运算的结果是: (位操作)
|
6.14 二进制再运算中的说明
二进制是逢 2 进位的进位制,0、1 是基本算符。
现代的电子计算机技术全部采用的是二进制,因为它只使用 0、1 两个数字符号,非常简单方便,易于用电子方式实现。计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用 0 和 1 两个数字及其组合来表示任何数。进位规则是“逢 2 进 1”,数字 1 在不同的位上代表不同的值,按从右至左的次序,这个值以二倍递增。
6.15 原码、反码、补码
网上对原码,反码,补码的解释过于复杂,我这里精简几句话:
对于有符号的而言:
1) 二进制的最高位是符号位: 0 表示正数,1 表示负数
2) 正数的原码,反码,补码都一样 (三码合一)
3) 负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)
4) 负数的补码=它的反码+1 //
5) 0 的反码,补码都是 0
6) 在计算机运算的时候,都是以补码的方式来运算的。
6.16 位运算符
6.16.1 C 中位运算符介绍
6.16.2 C 语言位运算说明(1)
它们的运算规则是:
1) 按位与& : 两位全为1,结果为 1,否则为 0
2) 按位或| : 两位有一个为 1,结果为 1,否则为 0
3) 按位异或 ^ : 两位一个为 0,一个为 1,结果为 1,否则为 0
4) 按位取反 : 0->1 ,1->0
比如:~2=? ~-5=? 2&-3=? 2|3=? 2^3=?
完成前面的案例!
6.16.3 C 语言位运算说明(2):
>>、<< 算术右移和算术左移,运算规则:
1) 算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位
2) 算术左移 <<: 符号位不变,低位补 0
int a=1>>2; // a ? 1 / 2 / 2 = 0
int d = -1>>2 // ? -1
int c=1<<2; // c 1 * 2 * 2 = 4
留一个作业 -1 << 2 ?
- 完成前面的案例!
总结
掌握进制转换和位运算不仅能提高编程能力,还能加深对计算机内部数据处理的理解。通过实际示例,我们看到不同进制之间的转换方法以及位运算的实际应用。这些知识为解决复杂编程问题打下了坚实的基础。希望本文的解析能为你的学习和工作提供有价值的参考。
附录
参考:【尚硅谷C语言零基础快速入门教程-哔哩哔哩】 https://b23.tv/vS3vTDp