【问题标题】:Why is it printing semi colon(;)? [closed]为什么要打印分号(;)? [关闭]
【发布时间】:2017-09-10 12:02:28
【问题描述】:

下面的程序在执行时打印';'作为输出。我不明白为什么。当我更改'c'和'i'的值时,有时会添加这两个,有时会打印'='和';'之类的符号

#include<stdio.h>

int main() {
    char c='1';
    int i=10;
    printf("%c", c|i);
}

【问题讨论】:

  • 你有什么不明白的?这是按位或的结果。您的预期输出是什么?为什么?
  • 你正在对字符1进行或按位运算,它有一些值和10。它是一个新数字,它的ascii值;我猜。
  • '1'的Ascii值为49,1中的值为10,你正在执行或操作,然后它变成59,你正在打印字符,在ascii表中59是值;字符
  • 谢谢。你们俩说的都对。我对 '1' = chr(49) 和 10 = '1010' 进行了 OR 运算,得到了答案 59,即 ';' 的 ASCII 值。

标签: c


【解决方案1】:

因为49 | 10 = 5959';'的ASCII码。

【讨论】:

    【解决方案2】:

    它正在执行 49(00110001) OR 10(00001010) 的按位或运算,即 00111011(59) ,并返回 59 的 ascii 值,请访问页面http://ee.hawaii.edu/~tep/EE160/Book/chap4/subsection2.1.1.1.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2013-03-28
      • 2020-09-26
      • 2010-11-06
      相关资源
      最近更新 更多