【问题标题】:Nibble Restriction to 0-9半字节限制为 0-9
【发布时间】:2016-04-27 15:42:45
【问题描述】:

各位程序员大家好,

int main() 诠释n;

scanf("%d", &n ,);
printf("nibble =  %d%d%d%d", (n/8)%2, (n/4)%2, (n/2)%2 , n%2 );

return 0;}

到目前为止,我已经构建了此代码,该代码将十进制值转换为半字节。

它有效,但我对如何将输入限制为 0-9 有疑问, 不使用 if 语句。有没有可能这样做,如果怎么做? 目前代码使用 0 - 15 位小数。请给我一个例子或向我解释一下,以便我理解它。

谢谢!

【问题讨论】:

    标签: converter restriction nibble


    【解决方案1】:

    不使用条件是不可能的

    但是告诉我们如果输入一个小数 >9 你的程序应该做什么?

    scanf("%d", &n ,);
    if ((n>=0) && (n<10))
      printf("nibble =  %d%d%d%d", (n/8)%2, (n/4)%2, (n/2)%2 , n%2 );
    else
      printf("err: input out of range");
    

    【讨论】:

    • 但是即使有条件,你还能给我一个可能的例子吗?
    • 我添加了上面的示例。顺便说一句,您将 n 声明为“int”——在大多数编译器中它是一个有符号的 var。如果你写“unsigned int”,你可以删除第一个子条件(n>=0)。
    • 非常感谢,所以第二行中间的 && 可以保护 n>0 和 n
    • && 是一个逻辑 AND。所以左边右边的条件必须为真才能得到一个真结果
    猜你喜欢
    • 2014-07-06
    • 1970-01-01
    • 2013-08-11
    • 2013-05-27
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多