进制表示方法
名称 | 形式 |
---|---|
二进制(binary) | 0b+内容 / 0B+内容 |
八进制(octal) | 0+内容 |
十进制(decimal) | 内容 |
十六进制(hexadecimal) | 0x+内容 / 0X+内容 |
下面是试验程序:
#include <iostream>
using namespace std;
int main()
{
int a = 20;
int b = 024;
int c = 0x14;
int d = 0X14;
int e = 0b10100;
int f = 0B10100;
int b2 = 0024;
int c2 = 0x014;
// int c3 = 00x14; //This is an error.
int e2 = 0b010100;
cout << a << " " << b << " " << c << " " << d << " " << e <<
" " << f << " " << b2 << " " << c2 << " " << e2 << endl;
return 0;
}
Result:
20 20 20 20 20 20 20 20 20
进制的转换
下面在 Header File Binary.h 中定义了二进制十进制转换函数:
1.binary_to_decimal():二进制→十进制
2.decimal_to_binary():十进制→二进制
#ifndef BINARY_H
#define BINARY_H
#include <cmath>
int binary_to_decimal(unsigned long bin1)
{
unsigned long dec1 = 0;
unsigned long tem1 = bin1;
unsigned i = 0;
while (tem1 != 0)
{
dec1 += pow(2, i++) * (tem1 % 10);
tem1 /= 10;
}
return(dec1);
}
int decimal_to_binary(unsigned long dec2)
{
unsigned long bin2 = 0;
unsigned long tem2 = dec2;
unsigned j = 0;
while (tem2 != 0)
{
bin2 += pow(10, j++) * (tem2 % 2);
tem2 /= 2;
}
return(bin2);
}
#endif // !BINARY_H
使用例子在中【C++ Primer(5th Edition) Exercise】练习程序 - Chapter4(第四章) Exercise Section 4.8(i.e. Exercise 4.25-27)。
此外注意,次方不是 ^ !!!,这个符号在英文版P154有讲解。
当然,可以类比写出其他进制转换的程序。
See also
Teddy van Jerry 的导航页
【C++ Primer(5th Edition) Exercise】练习程序 - Chapter2(第二章)