C语言如何定义一个二进制变量

比如定义一个 二进制的 i ,在内存中只占一个bit,或者定义一个二进制指针,进行++操作的时候每次地址加一个bit的长度。如果不行的话能不能给出一个把一个整型的数的各位二进制位保存到数组里的最高效的算法。谢谢回答。

计算机保存数据就是2进制的,如char a = 97;那么在计算机里面的信息就是01100001,用2进制打印就是01100001,用10进制打印就是97,因此只存在显示方式的不同。
c语言中对位操作有几种方式,&与操作,|或操作,^异或操作,~反操作,<<左移位操作,>>右移位操作。如果想取a的第i位是多少,表达式(a & (1 << i))为0表示第i位为0,非0表示第i位为1.
指针最小单位为字节,不存在二进制指针
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-08
这个需要看目标硬件平台是否支持。例如51单片机内部具有可位寻址寄存器,可通过bdata域声明或专用的bit类型将变量分配到位寻址区。

如果是跨平台编写,可采用位域实现。或直接采用字符型保存各位状态,效率比位域大大提高,缺点是浪费些空间。
第2个回答  2015-09-24
  C语言中没有 “二进制变量”这一说法!
  C语言中的数据基本类型包括:char short int long float double . 用哪种类型定义的就叫XX类型变量,如字符型变量,整型变量,浮点型变量。
  各种变量中存储的数据,都是以二进制进行存储的。因类型的不同,采用的二进制编译格式不同。如:整形类都是用补码存储,浮点型采用IEEE754标准存储。
  对于int a=0x1A ; int b=0101 ;这种变量初始化中,a,b依然是整形变量,0x1A这种以0x开头的数据表示16进制常数(或称常量),0101这种以0开头的数字表示8进制常数。但程序设计中并没有规定二进制常数的表示形式,如果需要使用的话,可以采用字符数组来存储二进制数,如:
  char a[100] = "10100101" ;
  需要运算时,再通过自定义函数将字符串转换成整数。
  
第3个回答  2011-07-08
c语言中,定义一个int型变量a( int a=0;) ,这样在内存空间中是怎么只有一块内存空间,值为0,程序通过内存地址来找到a,并不会为保存a这个追问

老大没有说清楚额。。。。我想说的是能不能进行bit位操作,如果不行的话,求最好的替代算法。。。。。。

第4个回答  2011-07-08
对具体的比特位是没有指针操作的,你可以利用 位域 来实现你说的功能

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网