using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.AcceptsReturn = true;
}
private void Form1_Load(object sender, EventArgs e)
{
textBox2.Enabled = false;
textBox3.Enabled = false;
textBox4.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox2.Text = CalculateTrueForm(Convert.ToInt32(textBox1 .Text ));
textBox4.Text = CalculateComplete(textBox2.Text);
textBox3.Text = CalculateBuma(textBox2.Text);
}
private string CalculateTrueForm(int originalValue)//求原码
{
StringBuilder buffer = new StringBuilder();
int q = 0;
int r= 0;
int tmp=Math.Abs(originalValue);
do
{
q = tmp / 2;
r = tmp % 2;
buffer.Insert(0,Convert.ToString(r));
tmp = q;
} while (tmp != 0);
string result = buffer.ToString().TrimStart(FIRST_CHAR_B).PadLeft(7, FIRST_CHAR_B);//左侧自动补充0
return (Convert.ToString(originalValue < 0 ? SECONT_CHAR_B : FIRST_CHAR_B)) + result;
}
private const char POSITIVE_SIGN = '0';
private const char NEGATIVE_SIGN = '1';
private const char FIRST_CHAR_B = '0';
private const char SECONT_CHAR_B = '1';
private string CalculateComplete(string dataY)
{
if (dataY[0] == POSITIVE_SIGN)
{
return dataY;
}
StringBuilder sb = new StringBuilder();
sb.Append(dataY[0]);
for (int i = 1; i < dataY.Length; i++)
{
sb.Append(dataY[i] == FIRST_CHAR_B ? SECONT_CHAR_B : FIRST_CHAR_B);
}
return sb.ToString();
}
private string CalculateBuma(string dataF)//求bu码
{
if (dataF[0] == POSITIVE_SIGN)
{
return dataF;
}
StringBuilder result = new StringBuilder();
bool carry = dataF.Last() == SECONT_CHAR_B;//1
result.Append(carry ? FIRST_CHAR_B : SECONT_CHAR_B);//0,1
for (int i = dataF.Length - 2; i >= 0; i--)
{
if (carry)
{
carry = dataF[i] == SECONT_CHAR_B;//1
result.Insert(0,carry ? FIRST_CHAR_B : SECONT_CHAR_B);
continue;
}
result.Insert(0, dataF[i]);
}
return result.ToString ();
}
}
}
【无标题】
最新推荐文章于 2024-09-08 17:23:35 发布