1樓:兔子和小強
/計算s中最大的數。
int strmax(char *s)
int max = 0',i;
for(i=0; s[i]; i++)
if(max < s[i])max = s[i];
return max-'0';
計算s(n),n進位對應的s的值。
int val(char *s,int n)int i,t = 0;
for(i=0; s[i]; i++)
t = t*n + s[i]-'0';
return t;
計算p(n)*q(n)-r(n)
int cal(char *p,char *q,char *r,int n)
return val(p,n)*val(q,n)-val(r,n);
int xf(char *p,char *q,char *r)int low = max(max(strmax(p),strmax(q)),strmax(r))+1,//low是最小進位。
high,mid,tlow,thigh,tmid;
tlow = cal(p,q,r,low);
if(tlow ==0)
return low;
查簡純禪找區間[low 2*low],使得目攔塵標進位落在區間內。
for(thigh = cal(p,q,r,2*low); tlow*thigh>0;)
if(abs(thigh) >abs(tlow))return 0;
if(thigh ==0)
return 2*low;
low = 2*low;
tlow = thigh;
thigh = cal(p,q,r,2*low);
二分法查褲指找目標進位。
high = 2*low;
while(low < high)
mid = low+high)/2;
tmid = cal(p,q,r,mid)*tlow;
if(tmid ==0)
return mid;
else if(tmid*tlow < 0)high = mid;
else low = mid;
return low;
你看看,不知道行不行。
進位轉換問題!!!
2樓:匿名使用者
b的ascii碼為1000010,f在b的後面4位,又4的ascii碼為100
所以 f的 ascii碼的二進位為1000010 + 100 = 1000110
轉換成16進位 = 46
演算法:1000110按照8421轉換後面4位(0110)為6 ,前面3位(100)為4
合起來為46
進位…!!!!
3樓:網友
31021,反覆除以5取餘數。
2011/5=402餘1
402/5=80餘2
80/5=16餘0
16/5=3餘1
3/5=0餘3
2202111,反覆除以3取餘數。計算同上。
4樓:網友
除以5取餘,2011/5=402餘1,402/5=80餘2,80/5=16餘0,16/5=3餘1,3/5餘3
結果是從低到高的餘數31021
某進位轉換 急!!!!!!!!!!
5樓:網友
設x進位。
20(d)=x+4
x=16 16進位。
35/16=2餘3
剩下的自己就能算了吧。
6樓:芒彼愛桃貓
所以4個4相當於10,可以推出為16進位。
35)轉換成16進位。
所以答案為23
進位轉換,急!!!!!!!!!!!!!!!!!!!!
7樓:網友
e(1110)7(0111)激扮5(0101).d(1101)4(0100)凱卜。
合起來就是你的盯鉛穗結果:
8樓:網友
不太清楚,你可以到上搜一下啊!
C如何在十進位制整數前面加,C如何在十進位制整數前面加一個
你是要在輸出的時候,比如10,顯示為010嗎?兩種方法,如果你知道你的數是多少位的,那麼 printf 0nd 即可。n代表位數 如果不知道是多少位,那就轉換成字串,然後再前邊加0輸出。不能加0阿,前面加0表示這是一個八進位制的數.在c 程式設計裡,怎麼讓不足十的數前補0 printf 2d 2d ...
C十六進位制求和C兩個十六進位制數相加
include stdio.h void main 對應不同型別資料的輸出,類似於輸入函式,c語言用不同的格式字元描述。d 以帶符號的十進位制整數形式輸出整數 正數不輸出符號 o 以無符號八進位制整數形式輸出整數 不輸出前導符o x 以無符號十六進位制整數形式輸出整數 不輸出前導符ox u 以無符號...
c語言中十六進位制和八進位制的格式,c語言裡面 d是十進位制 o是八進位制 x是十六進位制 多少是二進位制
八進位制八進位制由 0 7 八個數字組成,使用時必須以0開頭 注意是數字 0,不是字母 o 例如 int a 015 換算成十進位制為 13int b 0101 換算成十進位制為 65int c 0177777 換算成十進位制為 65535十六進位制 十六進位制由數字 0 9 字母 a f 或 a ...