本文目錄一覽:
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;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245975.html