1. 程式人生 > >浮點值轉4位元組16進位制

浮點值轉4位元組16進位制

 在此介紹兩種方法實現,第一種通過地址操作實現,但為了方便理解特意又用聯合體實現了下,以便加深理解。(注:都是小端環境下實現的

方法一:

int main(int argc, char * argv[])
{
	float fValue;

	printf_s("Please enter a float value:");
	scanf("%f",&fValue);

	while (fValue)   //輸入0的時候退出
	{
		unsigned char *cValue = (unsigned char *)&fValue;
		printf_s("%x %x %x %x\n",cValue[0],cValue[1],cValue[2],cValue[3]);

		printf_s("Please enter a float value:");
		scanf("%f",&fValue);
	}

	return 0;
}


方法二:
int main(int argc, char * argv[])
{
	union{
		float fValue;
		unsigned char c[sizeof(float)];
	} un;

	if (4 == sizeof(float))
	{
		printf_s("Please enter a float value:");
		scanf("%f",&(un.fValue));

		while (un.fValue)  //輸入0的時候退出
		{
			printf_s("%x %x %x %x\n",un.c[0],un.c[1],un.c[2],un.c[3]);

			printf_s("Please enter a float value:");
			scanf("%f",&(un.fValue));
		}
	}
	else
		printf_s("sizeof(float): %d\n",sizeof(float));

	return 0;
}



相關推薦

4位元組16

 在此介紹兩種方法實現,第一種通過地址操作實現,但為了方便理解特意又用聯合體實現了下,以便加深理解。(注:都是小端環境下實現的) 方法一: int main(int argc, char * argv

位元組16轉換為int

有時候在報文中會碰到以兩個位元組來存出一個整型的資料,例如0x0080,將其重新轉換成int的方法是: char a = 0x80;//低位 char b = 0x00;//高位 int value = (int)((unsigned char)a | (unsigned char)b<

C語言將一十進位制數化成2-16的任意數

思路:很簡單,就是將要轉換的那個不斷對轉化的進位制數不斷取餘,然後倒敘輸出即可 程式碼: #include<cmath> #include<cstdio> #include<cstring> #include<cstdlib>

十六顏色和rgb顏色互相轉換 將16的顏色轉為rgb顏色

  在之前的一篇文章《將16進位制的顏色轉為rgb顏色》中,曾經寫過將16進位制的顏色轉換為rgb顏色。   當然了,今天再看,還是有很多可以優化的地方,所以對之前的程式碼重構了一遍,並且同時寫了一個反向轉換(也就是將rgb顏色值轉換為字串形式的16進位制的顏色值)函式。   16進位制轉換rgb:

C/C++語言實現十進位制正整數化為2-16的數並輸出

<h3>/<span style="font-size:18px;">/將一個十進位制的正整數轉化為H進位制並輸出--拓展 在此先研究對於正整數的進位制轉換 以及2-16的進位制與十進位制的轉換 #include <IOSTREAM> using namespace s

MD5加密並轉為16

加密方式:MD5值 二進位制轉十六進位制 private static MessageDigest digest = null; /** * Hashes a String using the Md5 algorithm and returns the res

C# 16與字串、位元組陣列之間的轉換(

1.請問c#中如何將十進位制數的字串轉化成十六進位制數的字串 //十進位制轉二進位制 Console.WriteLine("十進位制166的二進位制表示: "+Convert.ToString(166, 2)); //十進位制轉八進位制 Console.WriteLine("十進位制166的八進位

android 16顏色字串int

           遇到的問題:                      因為一個地方字型顏色,背景色都是伺服器以字串的形式給我的,客戶端用到的函式是setBackgroundColor()設定他的背景色,但是這個函式引數是int型的,           問題來了,

python將字串16的ASCii碼的

binascii.a2b_hex(hexstr) binascii.unhexlify(hexstr) Return the binary data represented by the hexadecimal string hexstr. This function

C#數字、16字串和位元組之間互

一個位元組包含8個二進位制位,一個十六進位制可表示4個二進位制位,所以,一個位元組可以由2個十六進位制表示 總結如下: (1)一個byte 對應兩位十六進位制位,而不是八位(32位二進位制位); (2)轉化為十六進位制之後,不足兩位的,高位要補零。

python常用的十進位制、16、字串、位元組串之間的轉換(長期更新帖)

進行協議解析時,總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 廢話不多上,直接上例子 整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x10 16進位制轉10進位制: int('0

原碼,反碼,補碼, 216,byte位元組,雙位元組

計算機都以 補碼形式存在: 1.正數的原碼、反碼、補碼都一樣 負數的補碼==原碼(除符號位) 按位取反再+1;原碼==補碼(除符號位)按位取反再+1; 十進位制 原碼 反碼 補碼

byte陣列16字串的一種實現方式

public String bytes2HexStr(byte[] byteArr) { String hexString = "0123456789ABCDEF"; StringBuilder sb = new StringBuilder(byteArr.lengt

js byte陣列與16字串互(對負值填坑)

//十六進位制字串轉位元組陣列,跟網上demo一樣 function HexString2Bytes(str) {   var pos = 0;   var len = str.length;   if (len % 2 != 0) { &

16顏色成GRBA顏色並以陣列輸出

直接看程式碼 function transformationRgba(color) { let colors = color.toLowerCase(); let arr = [] if (colors.indexOf("#") != -1) {

Redis中get中文顯示為\xe4\xbd\xa0\xe5\xa5\xbd的16字串怎麼解決

場景: 在伺服器上redis-cli其他(線上)伺服器中redis值時,遇到了這個問題,百度一下,果然有前人採坑,果斷收錄一下_ 在啟動Redis客戶端如下加入引數輸入可解決: [[email protected] redis]# ./bin/redis-cli --raw

MSSQL 字串16函式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

水題T,二進位制16

輸入一個2進位制的數,要求輸出該2進位制數的16進製表示。 在16進位制的表示中,A-F表示10-15 Input第1行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔1行,包括一個以0和1組成的字串,字串長度至少是1,至多是10000Outputn行,每行輸出對應一個輸入。Sampl

二進位制16

   /** * 將二進位制轉換成16進位制 * * @param buf * @return */ public static String parseByte2HexStr(byte buf[]) { StringBuffe

彙編-將2化成16數並列印

.MODEL SMALL .DATA .CODE MAIN PROC FAR MOV MOV BX,98H MOV CX,4 L1: MOV DL,4 ROL BX,DL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH ;