笔试题

[复制链接]
1607|3
 楼主| txcy 发表于 2012-11-18 10:31 | 显示全部楼层 |阅读模式
大概如下:
/*
sizeof(int)的可能值为1,2,4,8,rand()是可以产生int范围内随机数的随机函数
*/
int x=rand();
int y=rand();
unsigned int cx=CONVERT(x);
unsigned int cy=CONVERT(y);
int less=(x<y)&&(cx<cy);
int diff=((x-y)==(cx-cy));
if(less&&diff)
      printf("true");
else
      printf("false");
问:宏CONVERT(n)是如何定义的,作用是什么?
无冕之王 发表于 2012-11-18 10:41 | 显示全部楼层
这个是什么单位的笔试题
yybj 发表于 2012-11-18 10:52 | 显示全部楼层
#define CONVERT(n) (n)&0x01111111
有符号整形转换为无符号整形
gxgclg 发表于 2012-11-18 11:03 | 显示全部楼层
#defin CONVERT (a+sizeof((a)*32768))
如果X是负的就把X归0。因为int范围不确定,所以就取当为1(无符号取值为0-32768)再乘以他的大小.
反正cx cy都是无符号,不用担心越界
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部