c语言带符号位的二进制数组,二进制数据的表示与运算(有符号、无符号数数学运算以及Q格式定点精度问题)...

本文探讨了C语言中二进制数据的表示方法,包括原码、反码和补码,以及位运算的操作。重点讲解了有符号和无符号数在运算过程中的规则,特别是混合运算时的转换和处理。通过IIR滤波器定点实现的例子,阐述如何在计算中提高精度。
摘要由CSDN通过智能技术生成

本文介绍了二进制binary数据在存储器的表示方式,C语言的位运算符号,有符号和无符号混合运算的规则,主要是乘法和除法规则不同。最后以IIR滤波器定点实现的例子来说明如何提高计算精度。

二进制数据与补码、原码和反码表示以及位运算

位运算是指二进制位的运算,在系统软件中,经常要处理一些二进制位的问题,如设置标志位,进行标志位的检测,通常见于状态寄存器和控制寄存器的访问,位运算的类型有相与,与非,相或,或非,异或,同或,取反等操作。

C语言的位运算

运算符含义描述

&按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为0

|按位或两个相应的二进制位中只要有一个为1,该位的结果值为1

^按位异或若参加运算的两个二进制位值相同则为0,否则为1

~取反一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0

<

>>右移将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0;对于有符号数据,逻辑右移则高位补零,算术右移则高位填充符号位;

二进制的存储表示方法

计算机中的存储器就是由许多字节(byte)单元组成的。一般,内存的最小度量单位就叫做位(bit),也叫比特。而一个字节就是由8个二进制位组成,其中,最右边的一位叫做最低位LSB,最左边的一位叫做最高位MSB。所以,一个16位的整数将在内存中占据2个字节的存储空间,一个32位的整数类型占据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值