GVKun编程网logo

如何将解压缩的十进制转换回COMP-3?(十进制数转化为压缩bcd码)

15

对于如何将解压缩的十进制转换回COMP-3?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍十进制数转化为压缩bcd码,并为您提供关于4.9二进制转换十进制,十进制转换二进制,公式。、C#中十进

对于如何将解压缩的十进制转换回COMP-3?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍十进制数转化为压缩bcd码,并为您提供关于4.9二进制转换十进制,十进制转换二进制,公式。、C# 中十进制与二进制、十六进制、八进制转换详解、C++编写的十进制转换成16进制代码、C语言十进制转换二进制八,十六进制。二进制转十进制。的有用信息。

本文目录一览:

如何将解压缩的十进制转换回COMP-3?(十进制数转化为压缩bcd码)

如何将解压缩的十进制转换回COMP-3?(十进制数转化为压缩bcd码)

我问了一个有关转换COMP字段的问题,但没有得到任何答案。

我希望堆栈溢出可以帮助我解决这个问题。

我成功地将COMP-3转换为十进制。我需要您的帮助,以任何高级编程语言(最好使用Java或c#.net)将解压缩的十进制数转换回COMP-3。

答案1

小编典典

用压缩十进制-123表示为X‘123d’(最后一个ny
c,d或f是符号)。处理压缩十进制的最简单方法之一是简单地将字节转换为十六进制字符串(或根据需要反之亦然),然后使用常规字符串操作。这可能不是最有效的,但是很容易实现。

因此,将Integer(值)转换为压缩的十进制是大致步骤(注意:我尚未测试代码)

String sign = "c";if (value < 0) {    sign = "d";    value = -1 * value;}String val = value + "d"byte[] comp3Bytes = new BigInteger(val, 16).toByteArray();

以下是一些与comp3相互转换的示例代码,要从字节数组中检索压缩的十进制,请参见http://record-
editor.svn.sourceforge.net/viewvc/record-
editor/Source/JRecord/src中的
getMainframePackedDecimal方法/net/sf/JRecord/Common/Conversion.java?revision=3&view=markup

并设置打包的十进制,请参见http://record-editor.svn.sourceforge.net/viewvc/record-
editor/Source/JRecord/src/net/sf/JRecord/Types/TypePackedDecimal.java?revision=3&view中的
setField =标记

这两个例程均采用字节数组,起始位置和字段位置的长度。

在网络上还有其他执行此操作的示例(我认为JRanch也具有执行转换的代码),进行一些谷歌搜索。

4.9二进制转换十进制,十进制转换二进制,公式。

4.9二进制转换十进制,十进制转换二进制,公式。

二进制转换十进制

1 0 1 1 0 1 1

6  5  4   3  2  1  0

1*26+1*24+1*23+1*21+1*20=

 64   +  16 +  8  +    2  +  1=91

注意:(任何数的零次方答案都是一!)

 

十进制转换二进制

1 8 9

189/2 商94   余1

94 /2  商47   余0

47/2   商23    余1 

23/2   商11    余1

11/2   商5      余1

5/2     商2      余1

2/2    商1    余0

1/2    商0  余1

 

189转换成二进制是10111101

注意:1除以1商1余0
2除以1商2余0
4除以2商2余0
2除以4商0余2
1除以2商0余1

有的时候啊,需要把语文的现实结果与理论结果分开)

C# 中十进制与二进制、十六进制、八进制转换详解

C# 中十进制与二进制、十六进制、八进制转换详解

1.十进制 转 二进制

   将十进制数不断地除2,将所有余数倒叙填写,即可得到所需二进制数据。

        public static string DecimalToBinary(int vDecimal)
        {/* 将十进制的数 vDecimal 不断地除 2,取余数
             * 然后将余数 倒序 填写             */List<int> vYuShu = new List<int>();  // 除 2 过程中产生的余数集int vTempValue= vDecimal;            // 除 2 过程中产生的商数for (; ; )
            {int tempYS = vTempValue % 2;
                vYuShu.Add(tempYS);  // 记住余数vTempValue = vTempValue / 2;if (vTempValue == 0)  // 商数等于0时,结束运算break;
            }// 倒序输出string strBinary = "";for (int i = vYuShu.Count - 1; i &gt;= 0; i--)
            {
                strBinary += vYuShu[i];
            }

            Console.WriteLine("Input decimal value:{0}, output binary value:{1}.", vDecimal, strBinary);return strBinary;
        }</int></int>
登录后复制

 

2. 二进制 转 十进制

   将二进制各位上的值(0或1)乘2的(n-1)次方,将每位结果相加。其中,n表示二进制中从右向左的位数(从1开始计);

        public static int BinaryToDecimal(string vBinary)
        {// 首先判断是否满足输入要求int[] vInput = new int[vBinary.Length];for (int i = 0; i 
登录后复制

 

 

3. 自带的转换方式

    C#.Net自带的进制转换方式:

            int vDecimal = 99;// 【10】 → 【2】string vBinary = Convert.ToString(vDecimal, 2);
            Console.WriteLine("十进制数:{0},转换成二进制:{1}", vDecimal, vBinary);// 【2】 → 【10】int tempDecimal = Convert.ToInt32(vBinary, 2);
            Console.WriteLine("二进制数:{0},转换成十进制:{1}", vBinary, tempDecimal);
登录后复制

4. 十进制    十六进制

            int vDecimal = 127;// 【10】 → 【16】string vStrHex = "0x" + Convert.ToString(vDecimal, 16);
            Console.WriteLine("十进制数:{0},转换成十六进制:{1}", vDecimal, vStrHex);// 【16】 → 【10】int tempDecimal = Convert.ToInt32(vStrHex, 16);
            Console.WriteLine("十六进制数:{0},转换成十进制:{1}", vStrHex, tempDecimal);
登录后复制

  或者可以:

5. 十进制 八进制

6.  其它转换

 

7. 有符号的数 二进制转换

   对于有正负号的数据,在转换时与上诉略有不同。

  1个字节(8个bits)它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128 → 127。

  用最高位表示符号位,0表示正数,1表示负数。

  10000000在计算机中表示最小的负整数。从10000001到 11111111依次表示-127到-1。

  负整数在计算机中是以补码形式储存的。

        public static int BinaryToDecimalWithSign(string vBinary)
        {// 首先判断是否满足输入要求int[] vInput = new int[vBinary.Length];for (int i = 0; i 
登录后复制

 

[]

 

以上就是C# 中十进制与二进制、十六进制、八进制转换详解的详细内容,更多请关注php中文网其它相关文章!

C++编写的十进制转换成16进制代码

C++编写的十进制转换成16进制代码

下面是小编 jb51.cc 通过网络收集整理的代码片段。

小编小编现在分享给大家,也给大家做个参考。

//Decimal to hexadecimal number
//programming by : Erfan Nasoori
//Date of send : 2009/1/11
 
#include <iostream.h>
 
void main()
{
 int x,y,i;
 int d,n=1;
 int * r;
 char h[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
 
 cout<<"Enter x : ";
 cin>>x;
 y=x;
 while(x >= 10)
 {
    x/=10;
   ++n;
 }
 r=new int[n];
 for(i=0 ; y >= 16 ; ++i)
 {
    r[i]=y%16;
   y /= 16;
 }
 r[i++]=y;
 
 cout<<"16 base = ";
 for(i=(n-1) ; i>=0 ; --i)
 {
    cout<<h[r[i]];
 }
cin.get();
}

以上是小编(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给程序员好友。

C语言十进制转换二进制八,十六进制。二进制转十进制。

C语言十进制转换二进制八,十六进制。二进制转十进制。

C语言十进制转换二进制八,十六进制。

十进制转二进制有个计算公式,就是除以2取余再倒序显示余数就是了。可以根据公式写。八制进公式也同理。十六进制有点不一样,大于9的要转为字母。A,B,C,D,E,F。

#include <stdio.h>
void totwo();
void toeight();
void tosixt();
int main()
{ 
	totwo();
	toeight();
	tosixt();
    return 0;
}
void totwo()
{
	int p,m,n,a[100];
	printf("十进制转二进制\n");
	printf("输入十进制数:");
	scanf("%d",&p);
	for(m=0;p>0;m++)
	{
		a[m]=p%2;
		p=p/2;
	}
	
	for(n=m-1;n>=0;n--)
		printf("%d",a[n]);
	printf("\n");
}
void toeight()
{
	int p,m,n,a[100];
	printf("十进制转八进制\n");
	printf("输入十进制数:");
	scanf("%d",&p);
	for(m=0;p>0;m++)
	{
		a[m]=p%8;
		p=p/8;
	}
	
	for(n=m-1;n>=0;n--)
		printf("%d",a[n]);
	printf("\n");
}

void tosixt()
{
	int p,m,n,a;
	char ch[100];
	printf("十进制转十六进制\n");
	printf("输入十进制数:");
	scanf("%d",&p);
	for(m=0;p>0;m++)
	{
		a=p%16;
		if(a<10)
		{
			ch[m]=a+''0'';
		}else
		{
			ch[m]=a-10+''A'';
		}
		p=p/16;
	}
	
	for(n=m-1;n>=0;n--)
		printf("%c",ch[n]);
	printf("\n");
}

--11-2二进制转十进制。也是有一个公式,比如二进制1010对应十进制是10,从前面位开始1*2^3+0*2^2+1*2^1+0*2^0=8+2=10.还有就是判断输入的是不是二进制数了。

#include<stdio.h>
void towtoten();
int pow(int a);
int main()
{
    towtoten();
	return 0;
}
void towtoten()
{
	int temp,n=0,i,j,sum=0;
	char p,a[100];
	printf("\n二进制转十进制\n");
	printf("输入二进制数:");
	while((p=getchar())!=''\n'')
	{	
		a[n]=p;
		n++;
	}
	j=n;
	for(i=0;i<n;i++)
	{
		
		if(a[i]==''.'')
		{
			printf("不支持小数。");
			towtoten();
			return;
		}
		if(a[i]==''-'')
		{
			printf("不支持负数。");
			towtoten();
			return;
		}
		if(a[i]!=''1''&&a[i]!=''0'')
		{
			
			printf("输入有误,不是二进制数。");
			towtoten();
			return;	
		}
		
		if(a[i]==''1'')
		{
			temp=pow(j-1);
		}else
		{
			temp=0;
		}
		sum+=temp;
		j--;
	}
	printf("十进制数:%d",sum);
	printf("\n");
}


int pow(int a)
{
	int product=1;
	for(int i=0;i<a;i++)
	{
		product*=2;
	}
	return product;
}

 

我们今天的关于如何将解压缩的十进制转换回COMP-3?十进制数转化为压缩bcd码的分享已经告一段落,感谢您的关注,如果您想了解更多关于4.9二进制转换十进制,十进制转换二进制,公式。、C# 中十进制与二进制、十六进制、八进制转换详解、C++编写的十进制转换成16进制代码、C语言十进制转换二进制八,十六进制。二进制转十进制。的相关信息,请在本站查询。

本文标签: