c++ 补码与整数互相转换

您所在的位置:网站首页 二进制转换成补码 c++ 补码与整数互相转换

c++ 补码与整数互相转换

2024-06-12 09:21| 来源: 网络整理| 查看: 265

一、补码的编码规则: 如果用8位二进制来表示一个整数,可以有2^8=256种编码可能性。 考虑到负数也需要编码,这256种编码被一分为二:代表128个负数和128个非负数。也就是说256种编码代表最小数从-128到最大数127之间的这256个数。这也意味着128到255这些数字没有分配到编码。本应该属于128到255的二进制编码被分配给了负数们。 具体编码的规律如下:

编码00000000代表的整数是0 编码00000001代表的整数是1 编码00000010代表的整数是2 …… 编码01111111代表的整数是127 编码10000000代表的整数是-128(而不是128) 编码10000001代表的整数是-127(而不是129) 编码10000010代表的整数是-126(而不是130) …… 编码11111111代表的整数是-1(而不是255)

二、补码转整数

#include using namespace std; typedef long long ll; int main(){ string s; cin>>s; ll ans=0; for(ll i=0;i=128) ans-=256; cout cout s[++top]=n%2; n/=2; }while(n>0); for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3