加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在C#中将整数转换为二进制字符串?

发布时间:2020-12-15 06:24:59 所属栏目:百科 来源:网络整理
导读:我正在写一个数字转换器.如何在C#中使用内置函数将整数转换为二进制字符串(Convert.ToString根据给定的值执行不同的操作)? 二进制 – 符号大小 二进制 – 补充 二进制二的补语 解决方法 今天几乎所有的电脑都在内部使用二进制补码,所以如果你这样做一个简单
我正在写一个数字转换器.如何在C#中使用内置函数将整数转换为二进制字符串(Convert.ToString根据给定的值执行不同的操作)?

>二进制 – >符号大小
>二进制 – >补充
>二进制>二的补语

解决方法

今天几乎所有的电脑都在内部使用二进制补码,所以如果你这样做一个简单的转换,你会得到二的补码字符串:
public string Convert(int x) {
  char[] bits = new char[32];
  int i = 0;

  while (x != 0) {
    bits[i++] = (x & 1) == 1 ? '1' : '0';
    x >>= 1;
  }

  Array.Reverse(bits,i);
  return new string(bits);
}

这是剩下的两次转换的基础.对于符号大小,请事先提取符号并转换绝对值:

byte sign;
if (x < 0) {
  sign = '1';
  x = -x;
} else {
  sign = '0';
}
string magnitude = Convert(x);

对于补码,如果数字为负,则减1

if (x < 0)
  x--;
string onec = Convert(x);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读