负数的位操作?

Ciggyy 2012-10-24 05:44:46
负数的位与或非异或操作是如何进行的?
先将原码转为补码计算后再将结果转为原码?
...全文
251 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-10-26
  • 打赏
  • 举报
回复
对电脑而言只有无符号二进制字节数组,对人脑才有十进制数、正数、负数、小数、无理数、复数、……
ouuyang 2012-10-26
  • 打赏
  • 举报
回复
计算机是不管你是负数,补码,原码之类的,你把一个数看成一个物理位组
如 1001 0011
再在这种数据上进行位与,非异或操作,然后再把得到的值转成 数学值就可以了
至于中间的补码之类,那都是因数学中的概念需要
lin5161678 2012-10-26
  • 打赏
  • 举报
回复
负数这个问题很大
对于c语言来说 负数是不是用补码表示是无法确定

位运算 一般用无符号数吧 明确点
千树之影 2012-10-26
  • 打赏
  • 举报
回复
计算机里从来不存原码这个东西
Kaile 2012-10-26
  • 打赏
  • 举报
回复
除了移位存在算术移位和逻辑移位外
位运算都可以看作无符号位在运算
Ciggyy 2012-10-26
  • 打赏
  • 举报
回复
多谢各位,理解好了
慧钦 2012-10-25
  • 打赏
  • 举报
回复
都是用补码进行计算的,结果也补码表示的
Ciggyy 2012-10-25
  • 打赏
  • 举报
回复
-1表示8位2进制的话不是10000001吗?
dpdp_2012 2012-10-25
  • 打赏
  • 举报
回复
int型-1在计算机是0xffffffff 3是0x00000003
-1&3是0x00000003
Ciggyy 2012-10-25
  • 打赏
  • 举报
回复
顶顶,如果不需要变成其他码,-1&3应该是1,可以答案是3
dpdp_2012 2012-10-24
  • 打赏
  • 举报
回复
我觉得除了移位存在算术移位和逻辑移位外,其他的不管你是什么码在计算机看来位运算是一样的,也不需要转化成其他什么码

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧