进制转换
来源:互联网 发布:java httpclient 详解 编辑:程序博客网 时间:2024/06/17 23:25
关于进制转换的总结!!
/*十六进制专为十进制#include<iostream> #include<string> #include<math.h> using namespace std;int main(){string s;int i = 0, count, sum;while (getline(cin, s)){int count = s.length();sum = 0;for (i =0; i <count; i++)//从十六进制个位开始,每位都转换成十进制 {if (s[i] >= '0'&&s[i] <= '9')//数字字符的转换 {sum += (s[i] - 48)*pow(16, count - i - 1);}else if (s[i] >= 'A'&&s[i] <= 'F')//字母字符的转换 {sum += (s[i] - 55)*pow(16, count - i - 1);}}cout << sum;}}*//*#include<iostream>#include<string>#include<math.h>using namespace std;int main(){string input;int para;while (cin >> input){int length = input.length();int result = 0;for (int i = 0; i<length; i++){switch (input[i]){case'0':para = 0; break;case'1':para = 1; break;case'2':para = 2; break;case'3':para = 3; break;case'4':para = 4; break;case'5':para = 5; break;case'6':para = 6; break;case'7':para = 7; break;case'8':para = 8; break;case'9':para = 9; break;case'A':para = 10; break;case'B':para = 11; break;case'C':para = 12; break;case'D':para = 13; break;case'E':para = 14; break;case'F':para = 15; break;default:break;}result = result + para*(pow(16, length - i - 1));}cout << result << endl;}return 0;}*//*//八进制专为十进制#include<iostream> #include<string> #include<math.h> using namespace std;int main(){string s;int i = 0, count, sum;while (getline(cin, s)){int count = s.length();sum = 0;for (i = 0; i < count; i++)//从十六进制个位开始,每位都转换成十进制 {if (s[i] >= '0'&&s[i] <= '7')//数字字符的转换 {sum += (s[i] - 48)*pow(8, count - i - 1);}}cout << sum << endl;}return 0;}*//*//二进制专为十进制#include<iostream>#include<string>#include<math.h>using namespace std;int main(){string s;int i = 0, count, sum;while (getline(cin, s)){int count = s.length();sum = 0;for (i = 0; i < count; i++)//从十六进制个位开始,每位都转换成十进制{if (s[i] >= '0'&&s[i] <= '1')//数字字符的转换{sum += (s[i] - 48)*pow(2, count - i - 1);} } cout << sum << endl;}return 0;}*///十进制转换为二进制/*#include<iostream>#include<string>using namespace std;int main(){int a;while (cin>>a){int para[100] = {0};int temp;int i = 0;for (; a != 0;){ while (a!= 0){temp = a % 2;a = a / 2;para[i++] = temp;} }for (int j = i-1; j >= 0; j--)cout << para[j];cout << endl;}return 0;}*///十进制转为八进制/*#include<iostream>#include<string>using namespace std;int main(){int a;while (cin >> a){int para[100] = { 0 };int temp;int i = 0;for (; a != 0;){while (a != 0){temp = a % 8;a = a / 8;para[i++] = temp;}}for (int j = i - 1; j >= 0; j--)cout << para[j];cout << endl;}return 0;}*///十进制转为十六进制/*#include<iostream>#include<string>using namespace std;int main(){int a;while (cin >> a){int para[100] = { 0 };int temp;int i = 0;for (; a != 0;){while (a != 0){temp = a %16;a = a / 16;para[i++] = temp;}}for (int j = i - 1; j >= 0; j--)cout << para[j];cout << endl;}return 0;}*///十六进制转为八进制,先转为十进制,再转为八进制/*#include<iostream>#include<string>#include<math.h>using namespace std;int main(){string str;while (cin >> str){int sum = 0;int length = str.length();for (int i = 0; i < length; i++){if (str[i] >= '0'&&str[i] <= '9') sum = sum + (str[i] - 48)*pow(16, length - i - 1);else if (str[i] >= 'A'&&str[i] <= 'F') sum = sum + (str[i] - 55)*pow(16, length - i - 1);}cout << sum << endl;int para[100] = { 0 };int temp;int j = 0;for (; sum != 0;){while (sum != 0){temp = sum % 8;sum = sum / 8;para[j++] = temp;}}for (int c = j - 1; c >= 0; c--)cout << para[c];cout << endl;}return 0;}*///八进制转为十六进制,先转为十进制,再转为十六进制#include<iostream>#include<string>#include<math.h>using namespace std;int main(){string str;while (cin >> str){int sum = 0;int length = str.length();for (int i = 0; i < length; i++){if (str[i] >= '0'&&str[i] <= '7') sum = sum + (str[i] - 48)*pow(8, length - i - 1);}cout << sum << endl;int para[100] = { 0 };int temp;int j = 0;for (; sum != 0;){while (sum != 0){temp = sum % 16;sum = sum / 16;para[j++] = temp;}}for (int c = j - 1; c >= 0; c--)cout << para[c];cout << endl;}return 0;}
//二进制转为八进制 两种方式,1转为十进制,再转为二进制;2 每三位二进制数得到一位八进制数
!!!!还有问题,后续再改,没有考虑二进制数不是3的倍数的情况。#include<iostream>#include<stdio.h>#include<string>using namespace std;int main(){string s;while (getline(cin, s)){int length = s.length();int count=0;int j = 0;int k;int a[100] = { 0 };int sum = 0;int u = length-1;//每次三位数 for (int i = length - 1; i >= 0; i--){if (s[i] >= '0'&&s[i] <= '1') { sum = sum + (s[i] - 48)*pow(2, length -u- 1);count++;u--;}if (count == 3){count = 0;a[j++] = sum;sum = 0;u = length-1;}}for(int k = j - 1; k >= 0; k--)cout << a[k]; cout << endl;}return 0;}
0 0
- 进制转换,类型转换
- 进制转换(进制转换)
- 进制转换-----十进制转换成二进制
- 进制的转换,八进制转换十六进制
- 进制转换,运算符,类型转换,
- 十进制转换2-9进制转换
- 进制转换
- 无限进制转换
- 进制转换
- 进制转换
- 进制转换
- 【整理】进制转换
- 进制转换
- 七、进制转换
- 进制转换
- 进制转换
- 进制转换
- NotesScript 进制转换
- gSoap客户端调用WebService完成后注意内存释放顺序
- js刷新页面方法大全
- iOS 音乐播放器demo讲解
- Redux大法好
- 欢迎使用CSDN-markdown编辑器
- 进制转换
- 题目1133:学分绩点
- Android Studio设置自动导包及删除无用包
- swustoj求最小生成树(Prim算法)(1075)
- 谷歌页面排序算法
- FourInOne初识
- QT ffmpeg 播放器
- 走刀式分板机的正确操作及常见故障
- Field injection is not recommended