本文目录一览:
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;
}