不同資料型別在程式中的表現形式
首先,這是一個小白文
最近在看《程式是怎麼跑起來的》裡面有一段程式碼
如下 因為編譯器的原因,所以程式碼跟書上有些不同,不要介意 程式碼在書上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碼。
程式可以正常工作了
這次的問題是忽略了不同資料格式的表現形式也不相同的問題,引以為戒。
相關文章
- 不同表結構或者不同資料型別之間的集合操作資料型別
- 大資料時代的壓縮表現形式大資料
- oracle將表中date資料型別修改為timestamp資料型別Oracle資料型別
- 自主資料型別:在TVM中啟用自定義資料型別探索資料型別
- 一個表單中的資料新增到不同的資料表中
- 在不同的資料庫中解析SQLServer資料資料庫SQLServer
- 淺談UML中類之間的五種關係及其在程式碼中的表現形式
- Julia不同資料型別函式的內部程式碼比較資料型別函式
- Java中的基本資料型別與引用資料型別Java資料型別
- number資料型別在查詢中的顯示資料型別
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-不同的最值大小SQL資料型別
- 保留資料庫表中的資料,把表中的欄位varchar2改成clob型別資料庫型別
- columns陣列形式展示不同列資料陣列
- Java中的資料型別Java資料型別
- javascript中的資料型別JavaScript資料型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- 004.01 不同 Python 資料型別的搜尋Python資料型別
- JS中其他資料型別轉為number資料型別的方法JS資料型別
- Java 資料型別和 MySql 資料型別對應一覽表JavaMySQL 資料型別
- python不同資料型別之間的區別有什麼?Python資料型別
- pandas中的series資料型別資料型別
- Hive中的集合資料型別Hive資料型別
- 用強資料型別保護你的表單資料-基於antd表單的型別約束資料型別
- 伺服器被攻擊的不同表現型別以及應對策略伺服器型別
- C# 左移右移在資料型別轉換中的使用C#資料型別
- oracle中date資料型別與timestamp資料型別的轉換Oracle資料型別
- oracle資料庫事務transaction 不同的鎖lock型別Oracle資料庫型別
- 不同資料型別與零值比較的if從句資料型別
- double型別資料在記憶體中中儲存格式型別記憶體
- Redis常見的5種不同的資料型別詳解Redis資料型別
- 查詢mysql某張表中的所有資料(欄位)型別MySql型別
- PHP抓取資料的3中形式PHP
- 使用PreparedStatement向資料表中插入、修改、刪除、獲取Blob型別的資料型別
- Dcat Admin from 表單 點選不同型別展示不同資料型別
- PostgreSQL在不同的表空間移動資料檔案SQL
- PHP7中的資料型別PHP資料型別
- Javascript 中的資料型別判斷JavaScript資料型別
- PowerShell中的基礎資料型別資料型別