c语言的二进制数值如何直接输出?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言的二进制数值如何直接输出?相关的知识,希望对你有一定的参考价值。
1、首先打开vc6.0, 新建一个项目。
2、添加头文件。
3、添加main主函数。
4、定义一个两个数相加的函数binSubtracton。
5、在main函数定义int了性number1,number2, binSub。
6、使用scanf给变量赋值。
7、调用binAddition、binSubtracton。
8、使用printf打印结果。
参考技术AC标准没有输出二进制的,不过用itoa()可以实现到二进的转换。
1、在C语言程序中,可以使用标准库函数中printf()来向屏幕输出信息,或者使用sprintf()向缓冲区输出信息。对整数而言,可以使用%d、%o、%x(或%X)输出十进制形式、八进制、十六进制形式,但貌似缺乏二进制形式。
2、解决方式有两种,一种是利用Windows提供的itoa()函数,另一种自行设计一个新的函数:
代码一:
/** Test.h */#pragma once
#ifndef Test_H
#define Test_H
/** use itoa() to print integers in the form of binary
* @param[in] n the integer to print
* @return void
*/
void printBinaryByItoa(unsigned int n);
代码二:
#include <stdio.h>
#include <stdlib.h>
void printBinaryByItoa(unsigned int n)
unsigned char data[33];
_itoa_s(n, data, 33, 2);
printf("%sb\\n", data);
void printBinary(unsigned int n, unsigned char separator, unsigned char needPrefixZeros)
unsigned int i = 0;
unsigned int mask = 0; /* the mask code to get each bit of n */
unsigned char data[40]; /* the buffer to store the bits of n in the form of characters */
unsigned int index = 0; /* used to access data[] */
unsigned int start = 0; /* to point out where and when to store bits of n */
data[39] = '\\0'; 参考技术B 就像楼上说的,二进制是不可以直接输出的,但是可以用程序输出
#include<stdio.h>
void f(int n)
if(n) f(n/2);
else return;
printf("%d",n%2);
int main()
int n;
while(1)
scanf("%d",&n);
if(n<0) break;
if(n==0) printf("0");
f(n);
printf("\n");
return 0;
参考技术C void B_print (unsigned char B)//八位二进制输出
char j;
for(j=8;j>0;j--)printf("%d\t",(1&(B>>j)));
想要几位改循环次数和就行了
C语言中,如何将一个数组中的数值转换成字符串输出?
数组是整型数组吗?如果是的话,可以取出来转换成字符就行了。例如,整型数值56,然后charc=56,输出c就行了。相当于强制类型转换。 参考技术A 情况分: 1.数组中每个元素都是0 ~ 9 的整数,可以分别将它们加48(‘0’的ascii码值)输出
2 。每个元素都是一个独立的数值,建议参考使用 itoa函数 参考技术B 第一次编程,请笑纳
#include<stdio.h>
void ToString(int array[], int array_size);
int main(void)
int a[5] = 5,4,3,2,1 ;
ToString(a, sizeof(a)/sizeof(a[0]));
void ToString(int array[], int array_size)
char *p;
int i;
p = (char*)malloc(array_size + 1);
for(i = 0; i < array_size; i++)
*(p+i) = '0' + array[i];
*(p+i) = '\0';
printf("int array is string %s\n", p);
运行结果:
Administrator@X11 ~
$ gcc main.c
Administrator@X11 ~
$ ./a
int array is string 54321
以上是关于c语言的二进制数值如何直接输出?的主要内容,如果未能解决你的问题,请参考以下文章
C语言 如何将16进制形式的字符串,转化为相同的16进制的整型?