永发信息网

【ffffff】...;A:0ffffff和0x61B:-1和98C:-1和97D:指向同一地址求解释】

答案:2  悬赏:70  手机版
解决时间 2021-02-13 10:28
【ffffff】...;A:0ffffff和0x61B:-1和98C:-1和97D:指向同一地址求解释】
最佳答案
【答案】 如果用gcc的编译器,结果选A,
  long 和int 一样都是4个字节,因此用int的b = c;结果还是0xffffff,而用只有1个字节的char型数据c等于'b' + b时相当于只取b的后两位,又因为是有符号的char,因此0xFF就是-1,因此C = 'b' + (-1) 就是 ‘a’,也就是0x61.
  如果将long换做long long 结果就大不一样了,因为sizeof(long long) = 8占用8个字节,结果将另外分析了.
  #include
  #include
  #include
  int main()
  {
   long a=0xffffff;
   int b;
   char c;
   b = a;
   c = 'b' + b;
   printf(%d %d %d %x %x %x,sizeof(long),sizeof(long long),sizeof(char),a,b,c);
   return 0;
  }
  输出如下:
  4 8 1 ffffff ffffff 61
  Process returned 0 (0x0) execution time : 0.123 s
  Press any key to continue.
  如果换做long long 结果如下:
  4 8 1 ffffff 0 ffffff
  Process returned 0 (0x0) execution time : 0.139 s
  Press any key to continue. 追问: 答案选c 追答: 如果答案选择是C的话,前提是a的后面是8个F,但题目是6个F,不信的话自己试下。
  8个F的代码如下:
  #include
  #include
  #include
  int main()
  {
   long a = 0xffffffff;
   int b;
   char c;
   b = a;
   c = 'b' + b;
   printf(%d %d %d %d %d %d,sizeof(long),sizeof(long long),sizeof(char),a,b,c);
   return 0;
  }
  
  结果如下:
  4 8 1 -1 -1 97
  Process returned 0 (0x0) execution time : 0.104 s
  Press any key to continue. 追问: 我试了,但是为什么八个f是-1? 追答: 因为此时的int是有符号的,最高位是符号位,。。。(可以见上面仁兄的回答。)0ffffff是十六进制的表示,代表如果不足就补0,并不是上面说的错误的表达方式。(0ffffff与0xfffffff在本质上是一样的)。 追问: 你们都太精彩了,我都不知道该选谁了?
全部回答
谢谢解答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
格调女王怎么去啊,我要去那办事
有购买过米其林轮胎的车友吗?使用感受如何?
奔驰v级V-class V220和V250内饰有什么区别吗
项链我觉得短,可以加加长吗
小雨美甲美睫地址在什么地方,想过去办事
那记猪手这个地址在什么地方,我要处理点事
macpro book电源线上的灯有时候是绿色的,有
艾 日文怎么拼
你好漂亮造型地址在哪,我要去那里办事
胎膜早破的病因是A.宫颈内口松弛B.创伤C.下生
前卫造型长征路形象店地址在什么地方,想过去
怎么注册3ds Nintendo network ID?请详细说明
我有同学说ps4可以玩星际,还说什么ATC就是ps
哈弗h1 保养灯怎么归零方法
撞车后保险公司人没看现场之后开掉会有问题嘛
推荐资讯
柘城县阳光舞蹈艺术学校地址在什么地方,我要
哈萨克斯坦人身高是多少
鸡缘巧合台湾大鸡排NO.011在哪里啊,我有事要
江阴市云亭街道人口和计划生育服务中心这个地
开迅视频什么时候可以正常像以前一样呀!最近
华美饭店(棠梨沟店)在什么地方啊,我要过去处
包刘村在什么地方啊,我要过去处理事情
凤冉文化艺术培训中心地址有知道的么?有点事
串口COM1无法发送数据
甘肃省有哪些风景区?
兰梦美容美发地址在哪,我要去那里办事
远安信用社怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?