C语言位操作

在C语言中,可以单独操控变量的位(bit),一般高级语言不会处理这级别的细节,C在提供高级语言便利的同时,还能为汇编语言所保留的级别上工作,这使其成为编写设备驱动程序和嵌入式代码的首选语言。

二进制整数(binary)

通常,1字节包含8位,C语言用字节(byte)表示储存系统字符集所需的大小,从左往右,分别给这8位分别编号7~0,在一字节中,编号是7的位被称为高阶位,编号为0的位被称为低阶位
该字节能表达的最大数字:1111 1111,为255,最小值为:0000 0000,为0,所以一字节可存储0~255范围内的数字,总共256个值。或者通过不同的方式解释位组合,程序可以用1字节储存 -128 ~ +127范围内的整数,总共还是256个值。
通常,unsigned char 用一字节标识的范围是0~255,而signed char 表示的范围是 -128 ~ +127.

有符号整数

如何表示有符号整数取决于硬件本身,而不是C语言。一般有三种方式:

  • 符号量表示法:用一位存储符号,剩下的7位表示数字本身。如1000 0001表示-1,0000 0001表示+1。其表示范围是-127 ~ +127,但是有两个0:-0和+0,容易混淆。
  • 二进制补码:最常用,高阶位为0则是正,为1则为负。正数的表示和符号量表示法一样,负数则是正数的反码+1.如+127为0111 1111,则负数的二进制补码为:1000 0001。负数128为1000 0000。正数为0000 0001,-1则表示为1111 1111.该方法可以表示-128至+127.
  • 二进制反码: 通过反转位组合中的每一位形成一个负数。如0000 0001表示1,则1111 1110表示-1,只有一个-0:1111 1111.该方法能表示-127至+127 。

八进制(octal)

每一个八进制位对应3个二进制位。
如八进制 0377,二进制表示为000 011 111 111
八进制123,二进制表示为001 010 011。

十六进制(hex)

每个十六进制数用四个二位数表示。
如0xF3,二进制为1111 0011
0xB9,二进制为1011 1001 。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SOC罗三炮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值