⑴ 在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形式就可以了。