⑴ 在c语言中如何将浮点型数据转换成BCD码的格式
BCD码就是二进制表示数据,你就直接把浮点数按每个数字转换成BCD码就行了。
⑵ C语言将八位无符号二进制数转换成BCD码
第一步,将8位无符号二进制整数除以100,得到两个结果:商和余数,这个商就是3位压缩bcd码的最高4位(截掉高4位,留下低4位二进制码);
第二步,将上面的余数除以10,又得到两个结果:商和余数,将商的低4位作为3位压缩bcd码的中间4位,余数的低4位作为3位bcd码的最低4位。
⑶ 如何将4字节浮点数转换为BCD码
四字节16进制数可转换为四个二进制字节(Bytes),从而使用Api函数来处理成单精度浮点数。
以下用VB代码处理。
VB有专门的API函数CopyMemory能处理2-10进制浮点数转换和10-2进制浮点数转换。
下列大咐卜代码演示了10进制Single(单精简卖度浮点型转为16进制字符显示的浮点数和其相反运算:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub BinToSin_Click()
Dim sinStr As String
Dim sinSj As Single
Dim Buffer(3) As Byte
Dim i As Integer
sinStr = Text2
For i = 1 To Len(Text2) Step 2
Buffer((7 - i) / 2) = Val("&H" & Mid(sinStr, i, 2))
Next
CopyMemory ByVal VarPtr(sinSj), ByVal VarPtr(Buffer(0)), 4
Text3 = sinSj
End Sub
Private Sub SinToBin_Click()
Dim i As Integer
Dim hexData As String
Dim a As Single
Dim Buffer(3) As Byte
a = Val(Text1)
CopyMemory Buffer(0), a, 4
For i = 0 To 3
If Len(Hex(Buffer(i))) = 1 Then
hexData = "0" & Hex(Buffer(i)) + hexData
Else
hexData = Hex(Buffer(i)) + hexData
End If
Next
Text2 = hexData
End Sub
需要注意的事项是这四字节的高低字节排序,不能搞错。
VB的Single 数据类型
Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38。Single 的类型声明字符为感叹号 (!)。
在内存以32位二进制形式存在:
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
第1位为符号位
第2-9位为阶滚穗码位
第10-32位为2进制小数尾值
即F2 ^ n * 1. XXXXXXX XXXXXXXX XXXXXXXX
其中
F为正号或负号(首为为0正数,首位为1负数
n为2-9位组成的BYTE数据值
XXXXXXX XXXXXXXX XXXXXXXX为尾数
⑷ c语言怎么把“abc”变成“bcd"
没有必要转换为int,然后再转换回山和来,直接加1即可。
//---------------------------------------------------------------------------
#include <stdio.h>
#include <string.h>
void ne(char *a)
{
int i,len=strlen(a);
for (i = 0; i<len; i++)
a[i]++;
}
int main(void)
{
char str[80];
scanf("%s",str);
ne(str);
printf("%s\行念n",str);
return 0;
}
//档唯困---------------------------------------------------------------------------
⑸ C语言浮点型转换为整型怎么转换的
C语言有以下几种取整方法:
1、直接赋值给整数变量。如:
int i = 2.5; 或 i = (int) 2.5;
这种方法采用的是团森舍去小数部分,能用于你的问题。
2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数返回塌租亩值是double。整数除法对正数的取整是舍去小数型高部分,能用于你的问题。不过整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。floor函数能用于你的问题。
5、
int b = (int)a;//取整
int c = (int)(a+0.5);//四舍五入
⑹ 怎么样 FLOAT 转换成 BCD码
我有一个程序,一会发你~~~
⑺ 在C语言中,如何将一个浮点数变换成整数
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
⑻ C语言的浮点型怎么转换为整型
C语言中,浮点型转换为整型可以用:强制类型转换、自动类型转换,例如:(int)3.14、int a = 3.14。
1、强制类型转换
强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式),其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。
例如: (double) a 把a转换为双精度浮点型,(int)(x+y) 把x+y的结果转换为整型。
2、自动类型转换
(1)执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等。
(2)赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它。
(3)函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参。
(4)函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。
(8)c语言浮点怎么转换bcd扩展阅读:
C语言中常用的数据类型:
1、int:整型
2、float:单精度浮点型
3、double:双精度浮点型
4、char:字符型
5、char *:字符指针型
⑼ 在C语言中,如何将16进制转为BCD码,如何表达
#include<stdio.h>
charbcd[10][5]={"0000"搜此,"0001","0010","0011","0100","0101","0110","0111","1000","1001"};
voidhex2bcd(intx)
{if(x>9)hex2bcd(x/10);
printf("%s",bcd[x%10]);
}
intmain()
{intn;
printf("请输入一个十六进制数:"世闹迅);
scanf("%x"弯袜,&n);
hex2bcd(n);
return0;
}
⑽ 欧姆龙怎么将浮点数转换成bcd
1、首先,需要知道欧姆龙plc浮点运算的格式,浮点数指令的运算结果是专用的浮点数格式。
2、其次,可以使用fix指神粗歼令把浮点数转化凳岁成十六进制。
3、最后,再使用bcd指令把十六进制转换游冲成bcd形式就可以了。