前言
本章内容概述了位以及进制的使用。
C语言 | 快速了解C的发展史🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 指针、数组 一文透彻~~~🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 结构体、联合、枚举🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 声明🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 作用域 在也不用担心分不清变量的作用域拉!!!🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 编译步骤 会用C还不知道C如何编译???🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 数据类型总结🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 位及进制的用法🧡💛💚💙
C语言 | 【耗费一夜总结三本C语言系列】之 预处理器🧡💛💚💙
一、位
位的使用通常是向硬件设备发送字节来控制,每个位都有与之对应的含义;而C语言能够对位进行单独操控;
1.1 进制
进制转换内容可参考这篇文章,在前几个月整理的内容;
在C中采用字节来表示存储系统字符所需的大小;
- 描述
存储器芯片
与数据传输率
中所用的字节指的是8位字节
;
1.2 C中的按位运算
C为开发者提供了按位逻辑运算符和位移运算符;
1.2.1 按位逻辑运算符
~
取反运算符
该运算符用于反码或将位取反;
~(10010011)
=> (01101100)
&
按位与运算符
为双目运算符,生成一个新的值;
- 两个都为一结果才是1,否则为0;
(00111001) & (11001101)
=> 00001001
|
按位或运算符
为双目运算符,生成一个新的值;
- 至少有一个为1,则为1, 否则为0;
(00111001) & (11001101)
=> 11111101
^
按位异或运算符
为双目运算符,生成一个新的值;
- 按位两者一个则位0,不一样则为1;
(00111001) & (11001101)
=> 11111011
1.2.2 位的常见用法
掩码:&
设置开或关的位组合;
打开位:|
打开一个特定位,且保持其他位不受改变;
关闭(清空)位:& ~
不影响其他位的情况下关闭指定的位;
切换位:^
打开已关闭的位或关闭已打开的位;
1.2.3 位的位移
左移<<
将左侧的位向左移动指定位数,后用0进行填充;
(00111001) << 3;
=> 11001000
右移>>
将右侧的位向左移动指定位数,正数左补0,负数左补1;
(00111001) >> 3;
=> 00000111