第1个回答 推荐于2017-09-04
数学上 八进制和十六进制 同 十进制 类似,应当有符号。
但计算机上 八进制和十六进制 都是 作为 无符号数 (正整数)来使用的。运算中,当然你可以 用 于 加减。
-0x61,-071 是表达式,你愿意看成是负数也可以。
------------
下面看不同格式的输出
int a=-0x61,b=-071;
printf("%d %d \n",a,b); -- -97 -57
printf("%d %d \n",-a,-b); -- 97 57
printf("%x %o \n",a,b); -- ffffff9f 37777777707
printf("%x %o \n",-a,-b); -- 61 71本回答被提问者采纳
第2个回答 2010-09-09
有啊!!
hex 16进制
oct 8进制
输出的时候,设置输出流的flag,和输出格式就可以了。
例如:
// #include<iomanip.h> //载入常用的流控制符
//setiosflags(标志字) 设置输出格式
//setiosflags(ios::showbase)
//按十六/八进制输出数据时,前面显示前导符0x/0
////////////////////////int x = 27 的输出结果:
10进制输出27
8进制输出33
16进制输出1b
///////////////输出时显示前导符 0 / 0x
10进制输出27
8进制输出033
16进制小写输出0x1b
16进制大写输出0x1b
请按任意键继续. . .
////////////////////DEV C++ 下调试通过
#include<iomanip.h>
#include<iostream>
using namespace std;
int main()
{
int x = 27;
cout<<"10进制输出"<<dec<<x<<endl; //cout<<x<<endl;
cout<<" 8进制输出"<<oct<<x<<endl;
cout<<"16进制输出"<<hex<<x<<endl;
cout<<"///////////////输出时显示前导符 0 / 0x"<<endl;
cout<<"10进制输出"<<dec<<x<<endl; //cout<<x<<endl;
cout<<" 8进制输出"<<setiosflags(ios::showbase)<<oct<<x<<endl;
cout<<"16进制小写输出"<<setiosflags(ios::showbase)<<hex<<x<<endl;
cout<<"16进制大写输出"<<setiosflags(ios::showbase)<<hex<<x<<endl;
system("pause");
return 0;
}