從遊戲開掛談談資料型別

2022-01-31 22:25:09 字數 1178 閱讀 9702

看到有的資料說資料型別占用的記憶體大小跟作業系統有關,或者跟編譯器有關,對於這方面,我也未研究的很深入,只說說我個人的理解

修改某一遊戲的玩家揹包圖鑑開啟狀態和寵物的三圍

安卓模擬器搭載android 4.x的系統 ,記憶體修改器(燒餅或八門)

使用燒餅修改器搜尋 1920 的截圖如上,可以看到1個dwbf就是乙個int32 ,每個dbwf下有4個東西

android系統是32位,遊戲的開發語言是c++,所以可知剛剛搜尋的就是乙個c++中的乙個int,佔四位元組

下面再記錄一下基礎知識

計算機中,以位(0 或 1)表示資料。資料的最小的定址單位稱為位元組(通常是八位)。

機器碼指令處理的單位,稱作字長。大部分對字長的指令解譯,主要以二進位制為主,如乙個 32 位的字長,可以表示從0至2的32次方減1的無符號整數值,或者表示從負的2的32次方至2的32次方減1的有符號整數值。存在著特殊的算術指令,對字長中的位使用不同的解釋,以此作為浮點數。

資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。 例如大胖子必須睡雙人床,就給他雙人床,瘦的人單人床就夠了。

首先說一下二進位制,二進位制只有兩個數字構成,就是0和1,因為是逢二進一,所以稱為二進位制。在計算機中八個0和1可以表示乙個英文本母,比如01001100,稱為8位二進位制數。我們將這樣的8位二進位制數稱為乙個位元組,也就是說乙個位元組可以表示乙個英文本母。
所謂位元組,原意就是用來表示乙個完整的字元的。

最初的計算機效能和儲存容量都比較差,所以普遍採用4位bcd編碼(這個編碼出現比計算機還早,最早是用在打孔卡上的)。bcd編碼表示數字還可以,但表示字母或符號就很不好用,需要用多個編碼來表示。後來又演變出6位的bcd編碼(bcdic),以及至今仍在廣泛使用的7位ascii編碼。不過最終決定位元組大小的,是大名鼎鼎的system/360。當時ibm為system/360設計了一套8位ebcdic編碼,涵蓋了數字、大小寫字母和大部分常用符號,同時又相容廣泛用於打孔卡的6位bcdic編碼。system/360很成功,也奠定了字元儲存單位採用8位長度的基礎,這就是1位元組=8位的由來。

從遊戲開掛談談資料型別

看到有的資料說資料型別占用的記憶體大小跟作業系統有關,或者跟編譯器有關,對於這方面,我也未研究的很深入,只說說我個人的理解 修改某一遊戲的玩家揹包圖鑑開啟狀態和寵物的三圍 安卓模擬器搭載android 4.x的系統 記憶體修改器 燒餅或八門 使用燒餅修改器搜尋 1920 的截圖如上,可以看到1個dw...

從基本資料型別到抽象資料型別

在馮 諾依曼體系結構中,程式 和資料都是以二進位制儲存的,因此,對計算機系統和硬體本身而言,資料型別的概念其實是不存在的。機器指令和組合語言中,資料物件是用二進位制數表示的,記憶體裡存的都是二進位制,對於記憶體裡存的內容,可以說 你認為它是什麼,它就是什麼 在高階語言中,為了有效地組織資料,規範資料...

MySQL從入門到精通 2資料型別

在mysql資料庫管理系統中,可以通過儲存引擎來決定表的型別,即起決定了表的儲存方式。同時mysql資料庫管理系統也提供了資料型別決定表儲存資料的型別。檢視幫助文件可以發現,mysql資料庫管理系統提供了整形 浮點型別 定點數型別和位型別 日期和時間型別 字串型別。整數型別 mysql資料庫管理系統...