我正在写一个数字转换器.如何在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);
原文地址:https://www.jb51.cc/csharp/95673.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。