分类: C/C++
2009-10-15 15:58:26
1:八进制和十六进制转化为十进制数。
#include
#include
using namespace std;
int ToDec(int num, int radix)//radix表示num的进制数
{
int array[10];
int i = 0, j = 0;
int numDec = 0;
while(num != 0)
{
array[i] = num%10;
num /= 10;
++i;
}
while(j != i)
{
numDec += array[j]*pow(radix, j);
++j;
}
return numDec;
}
void main()
{
int x = ToDec(567, 18);
int y = ToDec(456, 18);
int result = ToDec(150216, 18);
cout<
if(x*y == result)
cout<<"Good!"<
}
2:用<<、>>、|、&实现WORD(ABCD)高低位交换。
#include
using namespace std;
void main()
{
unsigned short a =0xABCD;
unsigned short b =(a<<8)&0xFF00;
unsigned short c =(a>>8)&0x00FF;
unsigned short d =b|c;
cout<
cout<
}
3:volatile的作用并举例?
答:volatile修饰符的主要目的是提示编译器该对象的值可能在编译器未检测到的情况下被改变,所以编译器不能武断地对引用这些对象的代码做优化。
(1)并行设备的状态存储器;
(2)多线程应用中被几个任务共享的变量。
4:评价下面的代码。
unsigned int zero = 0;
unsigned int compzero = 0xffff;
答;应该这样定义unsigned int compzero = ~0,因为硬件的位数会不同,这样做的移植性好!