说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

大家帮我解决一下这个问题!谢谢啊~~

编辑:说三道四文库 发布时间:2018-08-20 06:18
HTML文档下载 WORD文档下载 PDF文档下载
设计一个函数,使给出该数的原码,能得到该数的补码。


请写出必要的过程解释,详细点,谢谢大家~~~~~
这个很简单。

正数的原、反、补都是一样的。
负数原码将其绝对值的原码首位为变成1即可得到。
负数反码将负数原码除首位之外的其他位全部取反即可得到。
负数补码将负数反码加1即可得到。
这还不简单(取反加1就是补码了):

unsigned long func(unsigned long ul)
{
   return ~ul + 1;
}
哈哈我只写了负数的,正数自己搞定了。
int fun(int i)
{
 if(i<0)
  { 
    i=~i|1<<sizeof(int)*8-1;
    i=i+1;
   }
  return i;
}
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘