不同資料型別在程式中的表現形式
首先,這是一個小白文
最近在看《程式是怎麼跑起來的》裡面有一段程式碼
如下 因為編譯器的原因,所以程式碼跟書上有些不同,不要介意 程式碼在書上52頁
#include<stdio.h>
#include<string.h>
int main()
{
float data;
unsigned long buff;
int i;
char s[34];
//將0.75以單精度浮點數的形式儲存在變數date中。
data = (float) 0.75;
//把資料複製到4位元組唱的的整數變數buff中以諸葛提取出每一位。
memcpy(&buff,&data,4) ;
//逐一提取出每一位
for(i=33;i>=0;i--)
{
if(i==1||i==10)
{
s[i]='-';
}
else
{
//為各個位元組賦值'0'或者'1'。
if(buff%2==0)
{
s[i]='0';
}
else
{
s[i]='1';
}
}
buff/=2;
}
s[34]='\0';
//顯示結果。
printf("%s\n",s) ;
return 0;
}
這段程式碼工作正常,如下
然後我把其中為各個位元組賦值那幾行改成了這樣
s[i] = buff % 2;
然後程式就不能正常輸出了
分析後發現程式輸出字串的時候遇到0自動終止,於是我有把程式改成了這樣
s[i] = buff % 2 + 48;//把數字轉成ascii碼。
程式可以正常工作了
這次的問題是忽略了不同資料格式的表現形式也不相同的問題,引以為戒。
相關文章
- 004.01 不同 Python 資料型別的搜尋Python資料型別
- 自主資料型別:在TVM中啟用自定義資料型別探索資料型別
- Java中的基本資料型別與引用資料型別Java資料型別
- python不同資料型別之間的區別有什麼?Python資料型別
- columns陣列形式展示不同列資料陣列
- javascript中的資料型別JavaScript資料型別
- Java中的資料型別Java資料型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- Java 資料型別和 MySql 資料型別對應一覽表JavaMySQL 資料型別
- JS中其他資料型別轉為number資料型別的方法JS資料型別
- Dcat Admin from 表單 點選不同型別展示不同資料型別
- 用強資料型別保護你的表單資料-基於antd表單的型別約束資料型別
- 伺服器被攻擊的不同表現型別以及應對策略伺服器型別
- oracle資料庫事務transaction 不同的鎖lock型別Oracle資料庫型別
- Redis常見的5種不同的資料型別詳解Redis資料型別
- Hive中的集合資料型別Hive資料型別
- pandas中的series資料型別資料型別
- C# 左移右移在資料型別轉換中的使用C#資料型別
- PostgreSQL在不同的表空間移動資料檔案SQL
- 查詢mysql某張表中的所有資料(欄位)型別MySql型別
- 在 Kotlin 中“實現”trait/型別類KotlinAI型別
- opcode 運算元 5 中不同的型別型別
- 關於 PHP 不同資料型別在比較時該如何轉化問題PHP資料型別
- JavaScript中的資料型別-儲存差別JavaScript資料型別
- 【OpenCV教程】OpenCV中的資料型別OpenCV資料型別
- PHP7中的資料型別PHP資料型別
- MySQL中資料型別的驗證MySql資料型別
- Spark不同Cluster Manager下的資料本地性表現Spark
- [提問交流]在模型管理中增加的資料欄位是列舉型別,但是寫入資料庫變成了數字形式,如何寫成原值?模型型別資料庫
- js資料型別之基本資料型別和引用資料型別JS資料型別
- Python程式設計常用的資料型別Python程式設計資料型別
- 資料型別: 資料型別有哪些?資料型別
- PLC程式設計—資料型別C程式程式設計資料型別
- Firedac 在資料表中插入BLOB資料的方法
- MyBatis Java 和 資料庫 資料型別對應表MyBatisJava資料庫資料型別
- ACCESS 在資料表中實現簡單計算
- 不同阻尼比下的振動形式-python程式碼Python
- Java中的資料型別和運算子Java資料型別
- 1-02:MySQL中的資料型別MySql資料型別