原创 ACM-skew數(數制轉化問題)

問題描述 輸入數據 輸入包含一行或多行,每行包含一個整數 n。 如果 n = 0 表示輸入結束,否則 n 是一個 skew 數 輸出要求 對於每一個輸入,輸出它的十進制表示。轉換成十進制後, n 不超過 2的31次-1(21474

原创 ACM-時區間時間的轉換

問題描述         直到 19 世紀,時間校準是一個純粹的地方現象。每一個村莊當太陽升到最高點的時候把他們的時鐘調到中午 12 點。一個鐘錶製造商人家或者村裏主表的時間被認爲是官方時間,市民們把自家的鐘表和這個時間對齊。每週一些熱

原创 ACM-瑪雅歷

問題描述         上週末, M.A 教授對古老的瑪雅有了一個重大發現。從一個古老的節繩(瑪雅人用於記事的工具)中,教授發現瑪雅人使用了一個一年有 365 的叫做 Haab 的日曆。這個Haab 日曆擁有 19 個月,在開始的 1

原创 ACM-細菌繁殖

問題描述         一種細菌的繁殖速度是每天成倍增長。 例如: 第一天有 10 個,第二天就變成 20 個,第三天變成 40 個,第四天變成 80 個, ……。現在給出第一天的日期和細菌數目,要你寫程序求出到某一天的時候,細菌的數

原创 PE結構-Dos頭部

啥是PE結構?簡單來說,就是將代碼和數據按照一定的約定進行存放,爲進程的創建做準備。 微軟當初在設計PE結構時,目標是設計成多平臺的,所以裏面很多字段考慮了跨平臺因數,當然現在來看,這個跨平臺...en..就不用多說啥了。 先來了解一下P

原创 ACM-子串(字符串處理)

問題描述         有一些由英文字符組成的大小寫敏感的字符串。請寫一個程序,找到一個最長的字符串 x,使得:對於已經給出的字符串中的任意一個 y, x 或者是 y 的子串、或者 x 中的字符反序之後得到的新字符串是 y 的子串。

原创 PE結構-導入表

首先就是確定如何定位導入表的位置,導入表是位於數據目錄項的第二項 前四個字節爲相對虛擬地址(RVA),後四個字節爲大小(這裏做個參考,不依賴) 好了,既然是RVA,那麼說的就是內存中情況,那麼如何在文件中定位到導入表位置呢,這裏我們則需

原创 ACM-日曆問題

問題描述         在我們現在使用的日曆中, 閏年被定義爲能被 4 整除的年份,但是能被 100 整除而不能被 400 整除的年是例外,它們不是閏年。例如: 1700, 1800, 1900 和 2100 不是閏年,而 1600,

原创 PE結構-Nt頭部

首先,我們需要知道如何定位到Nt頭部,這個在上篇博客中Dos頭部的e_lfanew字段中,該字段可定位到Nt頭部 先來看一下這個32位的Nt結構 typedef struct _IMAGE_NT_HEADERS { DWORD

原创 模態對話框引發的窗口過程重入問題

首先,先普及下什麼是模態對話框,模態對話框的話就是不能在對話框和該程序的其他窗口之間進行切換,必須結束該對話框纔可以進行其他操作。 可以使用DialogBox創建一個模態對話框,至於爲啥這個對話框會造成上面的原因呢,其實msdn上有那麼一

原创 C++ 繼承

對於繼承,我們先不說概念。下面我還是先用C模擬並藉助彙編的方式來理解它,側重於學習繼承的內存模型。 我們先來看代碼,設計三個類,People類,Teacher類,Student類 struct Person { int age

原创 C++ 權限控制

首先,先來談談爲什麼會有權限控制這一東西?看如下代碼 struct Test { int a; int b; }; int main() { Test test; test.a = 2; tes

原创 C++ 構造和析構

啥是構造和析構,下面我們還是從C語言的角度來學習C++,簡述構造和析構語法的設計由來。 先看如下代碼: struct Test { int a; int b; }; int main() { Test test

原创 C語言到C++的改進

下面總結下C語言到C++後的一些改進,主要偏語法上哈 1. 類型敏感 //C and C++ unsigned int i = -1; // ok //C unsigned int i = {-1}; // ok //C++ u

原创 C語言到C++的過渡

C++是由C演變過來的,兩者必定是有聯繫的。這篇博客主要是過渡C,引出一些C++的基礎概念,下面我會用C來模擬並藉助彙編的方式來幫助大家更好的理解C++。 typedef struct Base { int a; int