有關負進位制數的轉換
阿新 • • 發佈:2019-01-23
常見的進位制數有2,8,10,16,等,但是如果是以-2,-8為進位制怎麼辦呢
其實✨並不難
下面這個程式碼是以-2進製為例的程式碼,其他的正數進位制或負數進位制只要改-2即可
代*號的幾行就是隻有在負數進制中才會起作用的程式碼。可以當作一個模板(不可用於10進位制以上的)
#include <iostream> #include <vector> using namespace std; int main() { int n, k, t; cin >>n; if(n==0) cout<<0; else { vector <int> v; while(n != 0) { k = n % -2; n /= -2; if(k < 0)//*************** { k -= -2;//************ n++;//**************** } v.push_back(k); } for(int i=v.size()-1; i>=0 ; i--) cout<<v[i]; } cout<<endl; return 0; }