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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 812|回復: 9
打印 上一主題 下一主題
收起左側

C語言問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:709761 發表于 2025-4-29 15:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
C語言如何實現   整數位是一個8位整數 36,小數位是一個8位整數 250,如何合并成float型 36.25。 假如 ,小數位是一個8位整數 25,如何合并成float型 36.25。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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,可以討論一下。
回復

使用道具 舉報

5#
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了
回復

使用道具 舉報

6#
ID:1109793 發表于 2025-4-30 10:45 | 只看該作者

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

使用道具 舉報

7#
ID:879809 發表于 2025-4-30 14:36 | 只看該作者
xiaobendan001 發表于 2025-4-30 10:45
那個sprintf可能比較占空間

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

使用道具 舉報

8#
ID:1150196 發表于 2025-5-11 23:05 | 只看該作者
coody_sz 發表于 2025-4-29 17:29
浮點:
u8 a = 36;
u8 b = 250;

回復

使用道具 舉報

9#
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 來處理三位小數。
如果你的小數部分位數是動態變化的,那就得額外傳遞一個表示小數位數的參數,再據此調整除數。
回復

使用道具 舉報

10#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久区| 久久成人一区二区三区 | 日韩小视频 | 一道本一区二区 | 精品视频网 | 欧美日韩精选 | 欧美aaaaa| 国产精品视频在线播放 | 91极品尤物在线播放国产 | 精品欧美一区二区三区 | 中文字幕乱码一区二区三区 | 欧美一区2区三区4区公司 | 天天操天天干天天透 | 日韩第一页 | 免费久久精品视频 | 狠狠色狠狠色综合系列 | 999热精品| 久久久久久久久久久高潮一区二区 | 国产一区视频在线 | 国产一在线观看 | 国产一区二区三区视频 | 国产一级在线 | 免费99视频 | 毛片在线视频 | 欧美精品成人影院 | 国产午夜精品一区二区三区 | 日本h片在线观看 | 亚洲精品久久久9婷婷中文字幕 | 毛片网在线观看 | 激情欧美日韩一区二区 | 久久夜视频 | 国产视频亚洲视频 | 三级在线观看 | 91看片网 | av网站免费| 日韩一级不卡 | 国产精品一区二区视频 | www.久久| 国内精品视频一区二区三区 | 我爱操| av毛片在线播放 |