Printf()函数如何以2进制方式显示数值

heavenb 2004-07-09 11:12:10
谢谢个位了!
...全文
641 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjp6688 2004-07-11
  • 打赏
  • 举报
回复
up
ra3 2004-07-11
  • 打赏
  • 举报
回复
给你一个函数:
#include <stdio.h>

int fb(int val, int size, char *rsult) {
int j = 0;
for (int i = size * 8 -1; i >= 0; i--)
if (val & (1 << i)) rsult[j++] = '1';
else rsult[j++] = '0';
rsult[j] = NULL;
return j;
}

void main()
{
char b[32];
int i = 31;
fb(i, sizeof(int), b);
printf("%s\n", b);

// 其它类型转换一下就行了。
char c = 'A';
fb((int)c, sizeof(char), b);
printf("%s\n", b);
}
heavenb 2004-07-11
  • 打赏
  • 举报
回复
分数不多!大家别失望呀!
heavenb 2004-07-11
  • 打赏
  • 举报
回复
多谢大家的帮助!
Vivianren 2004-07-11
  • 打赏
  • 举报
回复
用函数:itoa(a,temp,2) /*temp 为存放的2进制的字符数组 */


----------------------------------------------------------
right ,同意
cnxiaohai 2004-07-10
  • 打赏
  • 举报
回复
不能

必须通过自己写程序转换~~~~~~~~~~~~~~~~~~~

junnyfeng 2004-07-10
  • 打赏
  • 举报
回复
先转成二进制,用数组保存然后输出
o1n 2004-07-10
  • 打赏
  • 举报
回复
要把十进制转成二进制吧。
至少我不知道如何直接用printf()显示。
也学习一下。
wisexinlei 2004-07-10
  • 打赏
  • 举报
回复
同意楼上的说法
blueclu0281 2004-07-10
  • 打赏
  • 举报
回复
需要进行转换的
hongfeeling 2004-07-10
  • 打赏
  • 举报
回复
楼上的方法不错.
SCUM 2004-07-10
  • 打赏
  • 举报
回复

回复人: cnxiaohai(相声独一处) ( ) 信誉:100

不能

必须通过自己写程序转换~~~~~~~~~~~~~~~~~~~




此回复为什么让我觉得这么可疑。。。。。。。。。。。。

qingyuan18 2004-07-10
  • 打赏
  • 举报
回复
用函数:itoa(a,temp,2) /*temp 为存放的2进制的字符数组 */
dowhileprogramming 2004-07-10
  • 打赏
  • 举报
回复
是 OpenWatcom,偶打错了。
dowhileprogramming 2004-07-10
  • 打赏
  • 举报
回复
可以。除了 OpenWatom 编译器外,其它的编译器都不行。因为这个 OpenWatom 的printf 函数格式描述符里比别家的多了个 %b,就是用来输出二进制数的。比如:

printf("%d = %b\n", 10, 10);

就可以。
huaisha83 2004-07-10
  • 打赏
  • 举报
回复
不可以吧

69,369

社区成员

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

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