回 帖 发 新 帖 刷新版面

主题:[求助]如何获得一个字符的二进制字符

如: 一个字符 '1', 其ASCII码是 0x31, 如何输出其二进制字符"00110001"?

越想越晕,各位大侠,帮帮忙~[em10]

回复列表 (共2个回复)

沙发

写一个函数来输出了。
比如:
void ascii2binary(char ch)
{
     unsigned char mask;
     for(mask = 0x80; mask > 0; mask >>= 1)
     {
          if(ch & mask)
          {
             printf("1");
          }
          else
          {
             printf("0");
           }
        }
 }

板凳

去看看位运算的相关知识就知道了,楼上的程序很好.不过把
[quote]
          for(mask = 0x80; mask > 0; mask >>= 1)
          {
          if(ch & mask)
          {
             printf("1");
          }
          else
          {
             printf("0");
           }
           }
[/quote]
改为:
           for(mask = 0x80; mask > 0; mask >>= 1)
                printf("%c",mask&ch?'1':'0');
就更好了哈.

我来回复

您尚未登录,请登录后再回复。点此登录或注册