| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2018 人关注过本帖
标题:求助求助!!反码 原码 问题。
取消只看楼主 加入收藏
北冥有鱼:
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2017-10-12
结帖率:45.45%
收藏
 问题点数:0 回复次数:3 
求助求助!!反码 原码 问题。
  脑子感觉快烧没了。。。。
  char i=255;
  printf i=-1
  我是这么想的,计算机先把这个255数字转化为二进制,就是11111111, 然后把这个二进制当补码来看,八位里就是-1啦。
  可是,如果是char i=-1的话,可是-1好像不能化为二进制吧?》所以这个想法有问题。

第二种想法,先把这个数字化为原码,在转化为补码,但是,255在1个字节八位里好像不能化成原码。。。
 有大佬给理一理的吗?
搜索更多相关主题的帖子: char 数字 转化 二进制 补码 
2017-12-08 10:49
北冥有鱼:
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2017-10-12
收藏
得分:0 
回复 4楼 九转星河
那 char a=255  
计算机是怎么 读取 的呢?
char a=-1  又是怎么读取的??/
我觉得 如果a是正数的话,它可以转化为一个二进制数,比如255的纯2进制是11111111,但是计算机是以补码来看的,即11111111 是-1,输出-1.
可是要是负数该怎么考虑这个问题呢?

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

2017-12-08 14:06
北冥有鱼:
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2017-10-12
收藏
得分:0 
回复 6楼 九转星河
大佬我 是萌新 有点头晕。。。。那你觉得我那个想法是对的吗? 就是正数的那个
2017-12-08 14:18
北冥有鱼:
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
快速回复:求助求助!!反码 原码 问题。
数据加载中...
 
   



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

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