社区
C++ 语言
帖子详情
位运算的问题……
kero77
2008-03-03 03:40:46
int i=10;
cout<<~i<<endl;
为什么得到的结果是-11
我用的VS.net2005编译器
是编译器的问题吗?
i:0000 0000 0000 0000 0000 0000 0000 1010
~i:1111 1111 1111 1111 1111 1111 1111 0101
为什么是-11呢!怎么得到的呢!
我做了以下两种尝试
(1)
cout<<(~i)<<endl;
(2)
short i=10;
结果都是-11
...全文
109
10
打赏
收藏
位运算的问题……
int i=10; cout<<~i<<endl; 为什么得到的结果是-11 我用的VS.net2005编译器 是编译器的问题吗? i:0000 0000 0000 0000 0000 0000 0000 1010 ~i:1111 1111 1111 1111 1111 1111 1111 0101 为什么是-11呢!怎么得到的呢! 我做了以下两种尝试 (1) cout<<(~i)<<endl; (2) short i=10; 结果都是-11
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
无病呻吟2
2008-03-04
打赏
举报
回复
计算机存储的是补码
最高位为符号位~~~
int i
默认是有符号的。。。
ttkk_2007
2008-03-04
打赏
举报
回复
1111 1111 1111 1111 1111 1111 1111 0101 这事补码
要变成源码,先减一,再取反
减一:1111 1111 1111 1111 1111 1111 1111 0100
取反:1000 0000 0000 0000 0000 0000 0000 1011
Thinkingineverything
2008-03-04
打赏
举报
回复
事情是这样的
10 的 二进制码 为0000 0000 0000 0000 0000 0000 0000 1010
至于为什么cout < <(~i) < <endl; 的结果是-11可以这样看
因为负数的二进制是其相反数的二进制码取反加一
11 的 二进制是 0000 0000 0000 0000 0000 0000 0000 1011
所以-11 的二进制 是 1111 1111 1111 1111 1111 1111 1111 0101
在对上述结果取反 就是~10的结果 也就是
0000 0000 0000 0000 0000 0000 0000 1010
END
makewater
2008-03-03
打赏
举报
回复
计算机内部是补码表示的,你说的哪个东东是补码.
hai040
2008-03-03
打赏
举报
回复
用hex居然直接显示原码ffff fff5
int main()
{
int i = 10;
cout<<hex<<~i;
return 0;
}
Chappell
2008-03-03
打赏
举报
回复
求反之后等到补码,需要转换为原码
符号位不变,按位求反+1,即可得到原码
~i:1111 1111 1111 1111 1111 1111 1111 0101 (补码)
=>-000 0000 0000 0000 0000 0000 0000 1011
=>-11
Chappell
2008-03-03
打赏
举报
回复
二进制
234= 0000 0000 1110 1010
取反=1111 1111 0001 0101(补码,最高1表示负号)
= -000 0000 1110 1011
=-235
%x表示无符号数
1111 1111 0001 0101
= f f 1 5
Chappell
2008-03-03
打赏
举报
回复
int i;默认是signed
转换之后第一位是符号位为负数
baihacker
2008-03-03
打赏
举报
回复
-i = ~i + 1
CQZE
2008-03-03
打赏
举报
回复
有符号型的呀.
变成负数就是 -(i + 1)嘛
booth 算法---蒋小龙
8、 乘加运算 …………………………………………………………………………………… 24 9、 设计示例1 —— 8位、迭代 ……………………………………………………………… 26 1、 实现方案1 —— 一位、无符号 ……...
(推荐)Win32 API大全
1.3 综述………………………………………………………………………………………11 第二章 窗口管理函数(Windows Control Function) ……………………………………13 2.1 易用特性函数(Accessibility Features...
3d max入门教程
第14课………………几何运算 第15课………………路径放样 第16课………………*材质贴图 第17课………………*材质练习 第18课………………*材质应用 第19课………………*自制材质 第20课………………*棋盘材质 ...
波形放大器课程设计.docx
前言……………………………………………………………………………………………………………………1 一、课程设计的目的和意义………………………………………………………………………………………2 二、课程设计...
数据结构报告c++代码+截图
实验四 图的基本运算…………………………………………………………………………7 实验五 查找的有关操作…………………………………………………………………………8 实验六 排序的有关操作…………………………...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章