用getchar输入,打印的二进制为什么会多2个1
小弟写了一个把输入的字符型整数转化成二进制显示的程序,不知什么问题,用getchar得到的总是多2个1。望请大神们前来指出错误来:mrgreen:。#include<stdio.h>
#include<stdlib.h>
int print_2b(char a)
{
unsigned char b = 0x80;
while( b > 0)
{
putchar(a & b ? '1' : '0' );
b >>=1;
}
puts("\n");
}
int main()
{
print_2b(getchar());
return 0;
}
file:///C:/Users/lenovo/AppData/Local/YNote/data/qqEC40F61F6498141C01FB27C32DDB73C7/6e95442ee9494c5f9c491b57916876d6/4d46840cdede487dadcf5f3d229efb17.jpg
file:///C:/Users/lenovo/AppData/Local/YNote/data/qqEC40F61F6498141C01FB27C32DDB73C7/6e95442ee9494c5f9c491b57916876d6/4d46840cdede487dadcf5f3d229efb17.jpgfile:///C:/Users/lenovo/AppData/Local/YNote/data/qqEC40F61F6498141C01FB27C32DDB73C7/6e95442ee9494c5f9c491b57916876d6/4d46840cdede487dadcf5f3d229efb17.jpgfile:///C:/Users/lenovo/AppData/Local/YNote/data/qqEC40F61F6498141C01FB27C32DDB73C7/6e95442ee9494c5f9c491b57916876d6/4d46840cdede487dadcf5f3d229efb17.jpg
因为getchar得到的1实际是字符1,ascii码是0x31
页:
[1]