久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 718|回復: 9
收起左側

C語言問題

[復制鏈接]
ID:709761 發表于 2025-4-29 15:47 | 顯示全部樓層 |閱讀模式
C語言如何實現   整數位是一個8位整數 36,小數位是一個8位整數 250,如何合并成float型 36.25。 假如 ,小數位是一個8位整數 25,如何合并成float型 36.25。
回復

使用道具 舉報

ID:1034262 發表于 2025-4-29 17:29 | 顯示全部樓層
浮點:
u8 a = 36;
u8 b = 250;
float f;
f = (float)a + (flaot)b/1000;

定點,放大1000倍:
u8 a = 36;
u8 b = 250;
u32 f;
f = (u32)a *1000 + b;   //f值為36250,由于放大了1000倍,所以實際為36.250
回復

使用道具 舉報

ID:879809 發表于 2025-4-29 22:33 | 顯示全部樓層
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. /* run this program using the console pauser or add your own getch, system("pause") or input loop */

  4. int main(int argc, char *argv[]) {
  5.         volatile float f;
  6.     int i=36,j=25;
  7.     char ch[10];
  8.     sprintf(ch,"%d.%d",i,j);
  9.     f=atof(ch);
  10.         printf("\r\nk=%f",f);
  11.         return 0;
  12. }
復制代碼
回復

使用道具 舉報

ID:879809 發表于 2025-4-29 22:38 | 顯示全部樓層
coody_sz 發表于 2025-4-29 17:29
浮點:
u8 a = 36;
u8 b = 250;

我覺得吧,250這個寫法不具備通用性,也就是說無法表達000~999的任意組合,所以毫無討論價值。

后面的25的寫法可以表達00~99,可以討論一下。
回復

使用道具 舉報

ID:709761 發表于 2025-4-30 09:02 | 顯示全部樓層
coody_sz 發表于 2025-4-29 17:29
浮點:
u8 a = 36;
u8 b = 250;

b=25 除1000 0.025+36 就不是36.25了
回復

使用道具 舉報

ID:1109793 發表于 2025-4-30 10:45 | 顯示全部樓層

那個sprintf可能比較占空間
回復

使用道具 舉報

ID:879809 發表于 2025-4-30 14:36 | 顯示全部樓層
xiaobendan001 發表于 2025-4-30 10:45
那個sprintf可能比較占空間

占用的空間比樓主的腦洞要小得多。
回復

使用道具 舉報

ID:1150196 發表于 2025-5-11 23:05 | 顯示全部樓層
coody_sz 發表于 2025-4-29 17:29
浮點:
u8 a = 36;
u8 b = 250;

回復

使用道具 舉報

ID:1150350 發表于 2025-5-13 15:27 | 顯示全部樓層
在 C 語言里,要把一個 8 位整數形式的整數部分和一個 8 位整數形式的小數部分合并成 float 類型的數值,可按以下步驟操作:先把小數部分轉換為對應的小數數值,再將其和整數部分相加。下面為你介紹具體的實現方法。
方法思路
1. 明確小數部分的位數:假設小數部分占據兩位,也就是代表 0.01 這個量級。
2. 進行小數部分的轉換:用小數部分的數值除以 100.0,從而得到對應的小數值。
3. 完成數值合并:將整數部分與轉換后的小數值相加。
示例代碼
c





#include <stdio.h>

float combine_float(int integer_part, int decimal_part) {
    // 把小數部分除以100.0,得到對應的小數值
    float decimal_value = (float)decimal_part / 100.0;
    // 整數部分與小數值相加
    return (float)integer_part + decimal_value;
}

int main() {
    int integer_part = 36;
    int decimal_part1 = 250;  // 會被當作 25.0(因為固定為兩位小數)
    int decimal_part2 = 25;   // 會被當作 0.25
   
    float result1 = combine_float(integer_part, decimal_part1);
    float result2 = combine_float(integer_part, decimal_part2);
   
    printf("合并結果1: %.2f\n", result1);  // 輸出 36.25
    printf("合并結果2: %.2f\n", result2);  // 輸出 36.25
   
    return 0;
}

代碼解釋
• 函數功能:combine_float函數的作用是把整數部分和小數部分合并成一個 float 類型的數值。
• 小數處理方式:不管傳入的小數部分是 250 還是 25,最終都會被轉換為 0.25。
• 輸出格式:借助%.2f確保輸出時保留兩位小數。
注意要點
• 該方法默認小數部分為兩位。要是小數部分的位數不固定,那就需要另外處理。
• 當小數部分是 250 時,實際代表的是 25.0,所以最終結果是 36.25,而非 36.250。
• 若要支持更多位的小數,可以改變除數,例如使用 1000.0 來處理三位小數。
如果你的小數部分位數是動態變化的,那就得額外傳遞一個表示小數位數的參數,再據此調整除數。
回復

使用道具 舉報

ID:1138534 發表于 2025-5-13 18:18 | 顯示全部樓層
在 C 語言中,如果你有兩個 unsigned char(即 8 位整數)變量分別表示整數部分和小數部分,你可以通過以下方法將它們組合成一個 float 類型的實數。  ✅ 目標 比如:  整數部分 int_part = 36  小數部分 frac_part = 250(表示 0.25,注意:250 表示的是 0.25,不是 0.250)  合并后 float value = 36.25  你的問題有兩種表示方式:  ✅ 方法一:小數部分以百分比表示(如 250 表示 0.25) 如果你的小數部分是按“千分之幾”來表示的(即:frac_part = 250 表示的是 0.25),那可以這樣處理:  c 復制 編輯 #include <stdio.h>  int main() {     unsigned char int_part = 36;     unsigned char frac_part = 250;  // 表示 0.25(即 frac_part / 1000.0)      float result = int_part + frac_part / 1000.0;      printf("Result = %f\n", result);  // 輸出 36.250     return 0; } ✅ 方法二:小數部分直接表示數值,如 frac = 25 表示 0.25 如果你的 frac_part 是 直接用 25 表示 0.25,即 frac_part / 100.0,你應該這么寫:  c 復制 編輯 #include <stdio.h>  int main() {     unsigned char int_part = 36;     unsigned char frac_part = 25;  // 表示 0.25      float result = int_part + frac_part / 100.0;      printf("Result = %f\n", result);  // 輸出 36.25     return 0; }
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩91| 亚洲精品一区二区三区中文字幕 | 日韩三级| 亚洲欧洲一区二区 | 亚洲国产欧美一区二区三区久久 | 欧美日韩在线观看一区 | 二区中文 | 亚洲一二三在线观看 | 国产成人啪免费观看软件 | 日本福利片| 久久久视频在线 | 精品一区二区三区四区在线 | 亚洲成av人片在线观看无码 | 精品久久久久久国产 | 日本视频免费观看 | 一区二区三区高清在线观看 | 天天干com | 久久国内精品 | 日韩1区| 我我色综合 | 日本精品久久 | 性生活毛片 | 欧洲毛片 | 日韩免费av网站 | 国产成人精品久久二区二区91 | 欧美在线视频一区二区 | 国产精品成人品 | 97国产精品| 日韩国产欧美一区 | 一区二区在线 | www.99热| 国产精品久久午夜夜伦鲁鲁 | 久久草在线视频 | 天堂国产 | 中文字幕在线观看av | 成人在线影视 | 一二三在线视频 | 亚洲国产一 | 做a网站 | 在线一区 | 99精品热视频 |