| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1986 人关注过本帖
标题:求助求助!!反码 原码 问题。
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 9楼 九转星河
其实感觉低字节向高字节扩展时扩展位补0还是1应该是根据数据类型的符号位决定的。
无符号扩展位一定会补0,有符号数据类型看符号位是0还是1,不过我这个编译环境char扩展到int时明显是补0的,不过short扩展到int时就要看符号位是0还是1了,不知道char扩展位补0还是1是否和编译器行为有关~因为char型和short型编译器对处理的表现行为处理方式不同~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-12-08 14:58
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 11楼 九转星河
以下是引用九转星河在2017-12-8 14:58:47的发言:

其实感觉低字节向高字节扩展时扩展位补0还是1应该是根据数据类型的符号位决定的。
无符号扩展位一定会补0,有符号数据类型看符号位是0还是1,不过我这个编译环境char扩展到int时明显是补0的,不过short扩展到int时就要看符号位是0还是1了,不知道char扩展位补0还是1是否和编译器行为有关~因为char型和short型编译器对处理的表现行为处理方式不同~


明白了~
我那个手机编译器char型和unsigned char型是等价的~难怪char 255=255; char 256=0;char型根本没有"负数"~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-12-08 15:50
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 3楼 九转星河
你们把事情想的好复杂。
-1 存储进内存还是-1
%d告诉编译器怎么解释数据。
重点不在数据类型,而在怎么解释数据。

[此贴子已经被作者于2017-12-8 18:04编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-12-08 17:58
北冥有鱼:
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2017-10-12
收藏
得分:0 
回复 12楼 九转星河
大佬 我理了一下。  
计算机内的一切运算都是以补码来的。
对于外界输入一个正数,转化为二进制以后,根据类型(八位,十六位等)对它切割,溢出的拿掉,计算机认为现在得到就是补码。就像char a =255,是11111111 它就是-1的补码,计算机根据补码认为它就是-1,所以输出a的话值就是-1。
但是如果输入一个负数的话,计算机会直接把这个负数转化为补码的形式。在根据类型切割,剩下的部分按补码来 是多少就是多少,如果没切割的话,就不变了。就像char a =-1.输出a还是-1.。

这个只是我个人不停找数字测结果 想出来的,到底是不是也不清楚。  小萌新这块只能理解到这里啦~~~~
2017-12-08 19:07
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 14楼 北冥有鱼:
这个我负责一点的话,说是或者说不是都证明不了其编译器行为,所以这样说我和你也遇到同样的问题了,真的要解决的话还是另外找人或者找方法问问比较稳妥~

所以说你说地球是方的也没有错,因为那个时代并没有人能够证明地球到底是圆的还是方的~

[此贴子已经被作者于2017-12-8 20:27编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-12-08 20:15
快速回复:求助求助!!反码 原码 问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052750 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved