Int32进制转换

占8个字节,共32位,其中第1位为符号位.

范围:-2,147,483,648 到 2,147,483,647

补码的目的是正数负数直接计算,要求是绝对值相同的正数和负数相加等于0.

先假定用按位取反的方法(如00100111和11011000),则两数相加必然为11111111,此时再加一个1就全部是0了。

所以负数为正数按位取反再加一个1

 

View Code
 1 public static void Main()
 2     {
 3         string s1="00000000 00000000 00000000 00000001";        //十进制:1
 4         string s2="11111111 11111111 11111111 11111111";        //十进制:-1
 5         int i = Convert.ToInt32(s1.Replace(" ",""), 2);
 6         int j=Convert.ToInt32(s2.Replace(" ",""),2);
 7         Console.WriteLine("i:{0},j:{1} 两数和为:{2}",i,j,i+j);
 8         
 9         string s3="01111111 11111111 11111111 11111111";        //int最大值:2的31次方-1
10         string s4="10000000 00000000 00000000 00000001";
11         Console.WriteLine(Convert.ToInt32(s4.Replace(" ",""),2));
12         
13         string s5="00000000 00000000 00000000 00000000";        //int最小值:0
14         string s6="10000000 00000000 00000000 00000000";        //取反加1
15         Console.WriteLine("int最小值为:{0}",Convert.ToInt32(s6.Replace(" ",""),2));        
16     }

 

 

转载于:https://www.cnblogs.com/goahead777/archive/2012/04/22/2465333.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值