C语言位操作 | 按位运算符
C语言 运算符 按位 位操作
2023-06-13 09:14:08 时间
二进制数、位、字节
PS:位运算详见计算机科学导论
前言:
C语言中可以单独操控变量中的位,例如:通常向硬件设备发送一两个字节来操控这些设备,每个位(bit)都有特定的含义,另外,与文件相关的操作信息经常被存储,通过特定的位表明特定的项。许多的压缩和加密操作都是直接除理单独的位。
高级语言一般不会处理这些级别的细节,C在提供高级语言便利的同时,还能在为汇编语言所保留的级别上工作。
二进制整数
C语言用字节(byte)表示存储系统字符集所需要的大小,所以C字节看可能是8位,9位,16位或者其他值。不过藐视存储芯片和数据率中所用的字节指的是8位字节。
假设一个字节为8位,每一位的编号对应2的相应指数,该字节能表示的最大数字是吧每一个位都设置为1:11111111这个二进制数的值就是128+64+32+16+8+4+2+1 = 255
,二这个字节最小的二进制数是00000000,其值是0,因此1字节可以存储1~255范围内的数字,总共256个值。
或者不同的方式解释位组合,程序可以用1字节存储-128~+128范围内的整数,总共还是256个值。
例如:
C
unsigned char//用一个字节表示的范围是0~255
signed char//用一个字节表示的范围是-128~+128
有符号整数
如何表示有符号整数取决于硬件,而不是C语言。
表示方法:表示有符号数最简单的方法是用1位存储符号,用剩下的7位来表示数字本身,用这种符号量表示法,10000001表示-1,00000001表示1.因此,其表示范围是-127~+127
缺点:这种方法表示会出现两个0:+0和-0,这很容易混淆,而且两个位来存储同一个值也很浪费。
解决方法:二进制补码(详见计算机科学导论P32)简单概述:以1字节为例,
PS:二进制反码
二进制浮点数
二进制小数
浮点数表示方法
其他进制数
八进制
十六进制
C按位运算符
按位逻辑运算符
用法:掩码
用法:打开位
用法:关闭位(清空位)
用法:切换位
用法:检查位的值
移位运算符
示例
位字段
示例
位字段和按位运算符
对齐特性(C11)
相关文章
- 【C语言】双人格斗小游戏(源码)
- C语言之数组(数组赋值的三种形式)
- C语言逗号运算符(,)
- C语言运算符优先级
- C语言实现顺序栈相关操作
- C语言位操作 | 按位运算符
- 抽丝剥茧C语言(中阶)结构体+练习
- C语言之三目运算符详解编程语言
- C语言之算数运算符详解编程语言
- 关系运算符及其优先级,C语言关系运算符及其优先级详解
- C语言运算符优先级
- C语言位运算符
- C语言逗号运算符(,)
- C语言与Linux系统编程指南(clinux教材)
- Linux下C语言文件操作实战(linux 文件操作 c)
- C语言实现MySQL例程,轻松搞定(c mysql 例程)
- C语言操作Oracle中的图片存储(c oracle读图片)
- 使用C语言封装Oracle数据库的方法研究(c oracle封装)
- C语言编写银行打印程序实例参考
- 你必须知道的C语言预处理的问题详解
- C语言解决不用+、-、×、÷数字运算符做加法的实现方法
- C语言运算符优先级列表(超详细)
- 纯C语言:递归组合数源码分享
- C语言中通过LUAAPI访问LUA脚本变量的简单例子