您的位置:

c语言输入原数,c语言输出各位数

本文目录一览:

c语言 数制转换

唉,研究了一天,碰到对于10进制以上的就实在不会了。计算机不好表示啊。若要表示,就只有用字符数组。但用字符数组又会造成很多麻烦。

我只会写出10以内进制间及16进制的相互转换了。

思前想后,似乎只有这条思路是最为简单的:间接转换!

10以内任意进制先转换为十进制,然后由十进制再转换为新进制。

唉,一直编这题,都烦死了。

不想再把程序写出来了,只提供下思路,留给你自己编吧。

很抱歉,没能帮上你...

c语言输入一个数原样输出,我的程序哪里不对

没错。

i

没赋值。while(t--)错。

c

的循环语句是靠数字判断的

0就是真

非零就是假。

所以只叫你输入然后退出程序。

我就看到这些。

C语言编程输入一个整数求原码,要用位运算来进行编程

#include stdio.h

#include limits.h

char * to_binary_str(char * buffer, int value)

{

    int i;

   

    for (i = sizeof(int) * 8 - 1; i  -1; i--)

        buffer[31 - i] = ((value  i)  1) + '0';

    buffer[sizeof(int) * 8] = '\0';

   

    return buffer;

}

int main(void)

{

    char buffer[33];

    int n;

   

    scanf("%d", n);

   

    if (n = 0) {

        printf("反码:%s\n", to_binary_str(buffer, n));

        printf("补码:%s\n", to_binary_str(buffer, n));

        printf("原码:%s\n", to_binary_str(buffer, n));

    } else {

        if (n == INT_MIN)

            printf("反码:1%s\n", to_binary_str(buffer, ~n));

        else

            printf("反码:%s\n", to_binary_str(buffer, n - 1));

        printf("补码:%s\n", to_binary_str(buffer, n));

        if (n == INT_MIN)

            printf("原码:1%s\n", to_binary_str(buffer, n));

        else

            printf("原码:%s\n", to_binary_str(buffer, ~n + 1 | INT_MIN));

    }

    return 0;

}