目录
前言
正文
示例
附录
前言
一般大家默认二进制,八进制,十进制,十六进制分别用字符:bin, oct, dec, hex 来表示,平时各种计算机语言的默认输出的格式都是十进制的。本文将集中演示C,C++语言的二进制,八进制,十六进制输出的写法。
正文
十进制转十六进制:
C++ 版本 -> cout <<"十六进制:"<< hex < C 版本 -> printf("十六进制:%#x\n",i); ps1: C版本 %x会直接输出16进制数,%#x 的输出会带上0x的标志,如果'X'是大写,则带的标志也是大写0X。 ps2: C++前面使用了16进制输出后,后面不加hex标志,也会将默认打印改为16进制。8进制同理。 十进制转八进制: C++ 版本 -> cout <<"八进制:"<< oct < C 版本 -> printf("八进制:%o\n",i); 十进制转二进制: C或者C++的printf,cout可以实现直接输出八进制,十进制,十六进制数据,但是不支持直接的二进制输出,需要调用其它库函数。 其中C语言版本借助 C++版本借助 C++ 版本 -> cout <<"二进制:"< C 版本 -> char s[10]; //自定义二进制数的位数,输出位数是实际所需位数 itoa(num,s,2);//转成字符串,基数为2 printf("二进制:%s\n",s); 示例 定义:用不同进制输出99到102之间的数。 #include #include #include #include using namespace std; int main(){ char s[10]; //自定义二进制数的位数,输出位数是实际所需位数 for(int num=99;num<102;num++){ //C++版本 printf("--------------------number(dec):%d\n",num); cout<<"----C++----"< //cout <<"十进制:"<< dec < cout <<"十六进制:"<< hex < cout <<"八进制:"<< oct < cout <<"二进制:"< cout<<"----C----"< //C语言版本 //printf("十进制:%d\n",num); printf("十六进制:%#x\n",num); printf("八进制:%o\n",num); itoa(num,s,2);//转成字符串,基数为2 printf("二进制:%s\n",s); } } 输出: --------------------number(dec):99 ----C++---- 十六进制:63 八进制:143 二进制:0001100011 ----C---- 十六进制:0x63 八进制:143 二进制:1100011 --------------------number(dec):100 ----C++---- 十六进制:64 八进制:144 二进制:0001100100 ----C---- 十六进制:0x64 八进制:144 二进制:1100100 --------------------number(dec):101 ----C++---- 十六进制:65 八进制:145 二进制:0001100101 ----C---- 十六进制:0x65 八进制:145 二进制:1100101 -------------------------------- Process exited after 2.586 seconds with return value 0 请按任意键继续. . . 附录 C语言版本 printf 的 "%"定义的数据格式查询表