C语言中16进制常量用0x表示,那2进制常量用什么表示?

iProgram 2003-09-14 03:49:02
比较走几的问题, 有时候需要把常量以2进制付给变量,但是如何表示2进制常量呢?

int a=10; //默认10是10进制常量
int b=0x0A //16进制
现在想以2进制形式写怎么写?不相信c不支持2进制常量
...全文
26977 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
iProgram 2003-09-15
  • 打赏
  • 举报
回复
>fancy123(weixi)
>如果是具体问题,比如你所说的问题,可以用find and replace将状态前后都加上引号,
>再拷贝,一点都不麻烦吧。
我倒是经常这么干, 但这个没有能唯一标识的符号好进行全局替换, 所以只能先编个程序读出来然后首位加引号.

playboyxp 2003-09-14
  • 打赏
  • 举报
回复
c中没有二进制常量
bbgbianbaogui 2003-09-14
  • 打赏
  • 举报
回复
没有二进制的,我就特意编了一个个种进制转换成二进制的程序。(大二时)
tonybaobao 2003-09-14
  • 打赏
  • 举报
回复
我觉得无所谓的,你就当作字符串存储,然后你逐个去读就好了。
fancy123 2003-09-14
  • 打赏
  • 举报
回复
如果是具体问题,比如你所说的问题,可以用find and replace将状态前后都加上引号,再拷贝,一点都不麻烦吧。
iProgram 2003-09-14
  • 打赏
  • 举报
回复
看来c真的没有2进制常量表示法,真是失败:)
其实这是我第二次有这种需要. 比如某个文件是这样的格式:
10111011,
01100110,
11010010,
10010010
每一行代表一个状态, 现在想把状态集放在数组中, 恰好可以用2进制保存, 直接把上面5行复制到c++代码中:
int status[]={
//复制到下面
10111011B,
01100110B,
11010010B,
10010010B
}
就直接可以用了, 可惜C不能像汇编那样以B代表二进制, 现在只能用char*了, 需要在10111011前后加上引号, 很麻烦呀.
qjydali 2003-09-14
  • 打赏
  • 举报
回复
C语言没有你所说的二进制输入,最多可用函数去实现。
C语言本身支持的三种输入是:
1. 十进制。比如20,457;
2. 十六进制,以0x开头。比如0x7a;
3. 八进制,以0开头。比如05,0237
RenderBoy 2003-09-14
  • 打赏
  • 举报
回复
没听说过能直接输入1,0做常量的,现把2进制转成8进制,或者10进制,在当常量不就行了
Yssss1980 2003-09-14
  • 打赏
  • 举报
回复
汇编里面有10011b

但是C里面只有八进制(015),和16进制(oxff),和10进制(89)
baizhongri 2003-09-14
  • 打赏
  • 举报
回复
好象没有
虽然我刚学不久 在书里从来没看过 如果说错了 请多多包含了!
yzguoz 2003-09-14
  • 打赏
  • 举报
回复
从来没有见过
真是才疏学浅呀----------我
cnxiaohai 2003-09-14
  • 打赏
  • 举报
回复
我也觉得好象不能以2进制的形式写入.
但可以编程实现.
pinboo 2003-09-14
  • 打赏
  • 举报
回复
我从来没有用过二进制的写过呢,只有在写进文件里时才用到,书面上是用()2
scpzhwang 2003-09-14
  • 打赏
  • 举报
回复
我觉得好象不能以2进制的形式写入.
但可以编程实现.

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧