進製轉換題型總結

2021-10-03 21:45:51 字數 3429 閱讀 4002

01:數制轉換

思路:

以十進位制為跳板,實現低位數**換成十進位制後資料在long long以內)的進製轉換

**:

//a->b進製模板(0#include

using

namespace std;

int a,b,num_10=0;

char str[40]

,ans[40]

;int

main()

//10進製轉換為b進製(取餘,然後累除)

int size=0;

while

(num_10!=0)

if(!size)

printf

("0");

else

for(

int i=size-

1;i>=

0;i--

)printf

("%c"

,ans[i]);

//用%c

}

個例:10進製轉為2進製

#include

using

namespace std;

intmain()

for(i=j-

1;i>=

0;i--

)cout<; cout<}

問題描述:

給定n個十六進製制正整數,輸出它們對應的八進位制數。

輸入格式

輸入的第一行為乙個正整數n (1<=n<=10)。

接下來n行,每行乙個由0~9、大寫字母a-f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。

輸出格式

輸出n行,每行為輸入對應的八進位制正整數。

【注意】

輸入的十六進製制數不會有前導0,比如012a。

輸出的八進位制數也不能有前導0。

樣例輸入

2

39123abc

樣例輸出

71

4435274

思路:

以二進位製做跳板,完成轉換,注意二進位制串前面補0,確保二進位制串的長度為3的倍數,最後輸出的時候忽略前導0即可

**:

#include

using

namespace std;

int n;

map<

char

,string> mp;

void

init()

intmain()

cout<}return0;

}

1022 d進製的a+b (20 分)

#include

#define ll long long

#define f(i,a,b) for(int i = a; i < b; ++i)

#define ios ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);

int a,b,c,sum;

int s[35]

,cnt;

intmain()

while

(sum)

;for

(int i=cnt-

1;i>=

0;i--

)return0;

}

補充幾道水題開開心~

1037 在霍格沃茨找零錢 (20 分)

題目給的資料long long能開下

#include

#define ll long long

using

namespace std;

intmain()

cout<17<<

"."<17<<

"."

}

但是資料大於long long但是小於一定範圍的時候該怎麼辦?於是有了下面的**

#include

using

namespace std;

intmain()

z = t < c ? t - c +

29: t - c;

n = t < c ? n -

1: n;

y = n < b ? n - b +

17: n - b;

x = n < b ? m - a -

1: m - a;

printf

("%d.%d.%d"

, x, y, z)

;return0;

}

1019 general palindromic number (20 分)

#include

#include

#include

using

namespace std;

bool

judge

(int z,

int num)

}return

true;}

intmain()

while

(n !=0)

;bool flag =

judge

(z, num);if

(flag)

printf

("yes\n");

else

printf

("no\n");

for(

int i = num -

1; i >=

0; i--)}

return0;

}

1027 colors in mars (20 分)

#include

char r=

"0123456789abc"

;int

main()

}}

1058 a+b in hogwarts (20 分)

#include

#define ll long long

intmain()

進製轉換應用 劍指offer題型歸納

1.按位與 相同位的數字只要有0則位0。2.按位或 相同位的數字只要有1則位1 3.按位異或 相同位的數字不同則為1 相同則為0 4.左移 將運算數的二進位制整體左移指定位數,低位用0補齊,將乙個數左移一位擴大2倍,以此類推。5.右移 將運算數的二進位制整體右移指定位數,高位用0補齊,將乙個數右移一...

進製轉換總結

前言 在學習計算機組成原理第二章 運算方法和運算器時,遇到了進製轉換問題,作為計算機學生,關於進製轉換還是要清楚了解的,很早就想總結下來了,這裡就記錄一些計算方法.文章大概內容 十進位制,二進位制,間整,小數轉換 十進位制轉換為n進製,用其數對n不斷取餘,直到商為零為止,然後逆序排列其餘數,得到的數...

JS進製轉換總結

如 0xf5 轉 十進位制,使用 parseint f5 16 進行轉換,結果為 245。結果沒錯,但不是我想要的結果。js 在轉換時,把 0xf5 看作是多位元組的,高位位元組補 0。完整格式為 0x000000f5 或者 0x0000000000000000f5 反正比0xf5單位元組大 二進位...