社区
C语言
帖子详情
求解。
hetuo
2011-04-23 09:07:13
直接计算出signed char的最大值最小值:
printf("Signed char min = %d\n",-(char)((unsigned char)~0 >> 1));
求解释:为什么要先转换成unsigned char 类型??
...全文
114
9
打赏
收藏
求解。
直接计算出signed char的最大值最小值: printf("Signed char min = %d\n",-(char)((unsigned char)~0 >> 1)); 求解释:为什么要先转换成unsigned char 类型??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pathuang68
2011-04-23
打赏
举报
回复
[Quote=引用 8 楼 hetuo 的回复:]
引用 7 楼 luciferisnotsatan 的回复:
引用 5 楼 luciferisnotsatan 的回复:
(unsigned char)-1
把-1转成unsigned char型。也就是全比特位为1,然后右移一比特位,最高为补0(即符号为变成了0),得到signed char的最大值
嗯,谢谢各位!理解了,如果不是转换成无符号类型,右移后最高位会补一从……
[/Quote]
Bingo, that's it! :)
hetuo
2011-04-23
打赏
举报
回复
[Quote=引用 7 楼 luciferisnotsatan 的回复:]
引用 5 楼 luciferisnotsatan 的回复:
(unsigned char)-1
把-1转成unsigned char型。也就是全比特位为1,然后右移一比特位,最高为补0(即符号为变成了0),得到signed char的最大值
[/Quote]
嗯,谢谢各位!理解了,如果不是转换成无符号类型,右移后最高位会补一从而计算机会认为存储的是一个负数,从而按求补运算得出的结果为1或者-1.
所以必须转换成无符号类型才能求得最大值~~
luciferisnotsatan
2011-04-23
打赏
举报
回复
[Quote=引用 5 楼 luciferisnotsatan 的回复:]
(unsigned char)-1
[/Quote]
把-1转成unsigned char型。也就是全比特位为1,然后右移一比特位,最高为补0(即符号为变成了0),得到signed char的最大值
KID_coder
2011-04-23
打赏
举报
回复
为了使char的最高位补零~~
vc里面是算术右移~如果不是unsigned类型~ 最高位是1,不改变符号位~
luciferisnotsatan
2011-04-23
打赏
举报
回复
(unsigned char)-1
delphiwcdj
2011-04-23
打赏
举报
回复
printf("Signed char min = %d\n",~0 );
printf("Signed char min = %d\n",-(char)((unsigned char)(-1) >> 1));
delphiwcdj
2011-04-23
打赏
举报
回复
打印~0看看
hetuo
2011-04-23
打赏
举报
回复
[Quote=引用 1 楼 msokd 的回复:]
先unsigned char 是为了取得该数的最大表示值
[/Quote]
还是不理解呀~~
MSOKD
2011-04-23
打赏
举报
回复
先unsigned char 是为了取得该数的最大表示值
(HDUACM201403版_04)递推
求解
杭电ACM课件2014版之 (HDUACM201403版_04)递推
求解
MATLAB
求解
方程和多元方程组
MATLAB
求解
方程和方程组0. 说明1. 核心函数solve2. 单个方程
求解
3. 带未知参数的方程4. 方程组
求解
5. 数值近似解6. 无解的情况7. 多多留言点赞! 0. 说明 前面有两篇博文分别介绍了: MATLAB求常微分方程的解析解 MATLAB求常微分方程的数值解 为了形成一个体系,我决定把普通方程组的
求解
也介绍一下。 本博文也是按照MATLAB的官方文档展开的(推荐大家多看官方文档) 1. 核心函数solve 一般形式 S=solve(eqns,vars,Name,Value) ,其中:
simulink建模之
求解
微分方程
simulink建模之
求解
微分方程 文章目录simulink建模之
求解
微分方程0.前言1.题目如下2.分析题目3.总结此题4.举一反三5.后续补充用传递函数的方式
求解
微分方程 0.前言 simulink建模的基础其实就是利用加减乘除等数学基本四则运算,有时加上积分和微分对数学公式进行表示,因此理解这些数学公式背后的物理意义,才是重点。所以各行各业都有门槛,但是通用的数学知识确实基础的基础,重点中的...
Matlab学习——
求解
微分方程(组)
介绍: 1.在 Matlab 中,用大写字母 D 表示导数,Dy 表示 y 关于自变量的一阶导数,D2y 表示 y 关于自变量的二阶导数,依此类推.函数 dsolve 用来解决常微分方程(组)的
求解
问题,调用格式为 X=dsolve(‘eqn1’,’eqn2’,…) 如果没有初始条件,则求出通解,如果有初始条件,则求出特解 系统缺省的自变量为 t。 2.函数d...
matlab
求解
微分方程
如何用matlab来
求解
简单的微分方程?举例来说明吧。
求解
三阶常微分方程。我们知道,
求解
高阶常微分方程可以化为
求解
一阶常微分方程组。编写函数eq3.m: %解常微分方程 3*y'''+5*y''+6*sin(t)*y=cost function ydot = eq3(t,y) ydot=[y(2);y(3);(cos(t)-5*y(3)-6*sin(t)*y(1))/3]; 其中,ydot为一个
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章