https://youtu.be/KOrA8appZOA

GCC是免費的標準C/C++編譯器
GDB是偵錯工具

這些在Linux上常見的工具,被移植到Windows上,相關專案稱為MinGW

不確定能否在Windows上編譯出能在Linux上跑的執行檔,但至少相同的程式碼,不用修改,能在Windows上編譯出執行檔(通常是.exe檔),也能在Linux上編譯出執行檔(沒副檔名概念,通常不會命名為*.exe)

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

GaofengBotanicalGarden.jpg

https://youtu.be/VIn8yhoUmRQ

位於新竹市東區寶山路上,十八尖山桐花廣場對面

免費開放,園區不大,好走,無陡坡,應該不用一小時即可走完一圈

路面大多是泥土路,常下雨的天氣,夜晚或天色不佳時,不適合行走

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

整合之前寫的字串轉列舉和位元(bit)操作,為了保持.NET命名風格的一致性,位元操作改稱為旗標(flag)操作

之前寫的字串轉列舉沒考慮到多旗標([Flags]Enum)的情況,也在此做更新

a0758a7f56ab8ca69575bc825dee247e.jpg

更新前的命名風格
BitOperator

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

參考dadalaohua大的文章:
https://iter01.com/536953.html

反轉byte內的bits,不像反轉集合內的元素順序,呼叫List<T>.Reverse()即可完成,效能要好,要設計出速度夠快的演算法,不容易

原文是C語言,在此微調成C#版本,並附上單元測試

之前文章沒對位元補充(bitwise complement)做單元測試,也在這裡補充紀錄

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

前一篇只能操作單位元,這裡補充說明多位元操作,原理是把不同位置的旗標先OR起來即可,另外也能練習C#的"|="與"params"語法

BitOperator.jpg

單元測試
Convert.ToString(10,2).PadLeft(8,'0')
"00001010"

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

移位運算(>> / <<),邏輯運算(AND / OR)(& / |),位元補充(~),2進制數值表示(0b),16進制數值表示(0x),相關功能包裝與使用範例紀錄於此

BitOperator.jpg

Byte內的位元位置通常從0開始,代稱為:

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0


CheckBit,檢查指定的位元其值是否不為0

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

接續之前關於PackBCD格式的介紹,利用Convert.ToString強大的功能,將數值資料轉為2進制輸出,觀察PackBCD格式與一般數值格式的差異

packbcd1.jpg

輸入資料>=10開始出現差異,因為10被拆成1與0,1被儲存於高四位,0被儲存於低四位
Convert.ToString(1,2).PadLeft(8,'0')
"00000001"

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

PackBCD格式是一種數值儲存格式,用4個bits紀錄數字0~9,1個byte拆成高四位和低四位,可以儲存00~99

此格式常見於金融財務會計領域,譬如櫃買中心的上櫃股票IP行情網路規格書:
https://dsp.tpex.org.tw/web/system/trainsmit.php

因為不是一般程式語言內建的數字格式,所以直接ToString可能出現亂碼,如下圖

packbcd1.jpg

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

ringa.jpg

https://youtu.be/gKmx46sQbjk

大腿內側騎士,這個小遊戲的配音很有趣,在此介紹

初級模式評價S(分數不明,但不用滿分)得到稱號,突破大氣層的火箭騎士
高級模式評價S(分數不明,但不用滿分)得到稱號,光輝的宇宙騎士

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

VisualStudio的即時運算視窗偵錯功能強大,在此紀錄我如何用它來寫測試案例與交付測試報告

a.jpg

b.jpg

c.jpg

情境1:調整、優化或修正的方法,回傳值可以轉換成容易閱讀的字串顯示時

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

延續之前的擴充ComboBox使用上的方便性1

ComboBox.jpg
參考資料
https://github.com/punker76/MahApps.Metro.SimpleChildWindow/issues/69

要取出ComboBox內的TextBox,網路上找到的方法大多是

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

接續前一篇文章,線上程式設計考試Codility測試題,答案還能再優化,之前想的太複雜了

以下直接暴雷答案,想自行挑戰的讀者請勿往下看

codility.jpg

還好Codility沒記憶體使用量測試,上次的答案太浪費記憶體,這次答案減少75%記憶體使用量(int[] -> bool[]),運行速度也更快

 

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

有機會看到一個程式設計測試題,要通過題目給的測試案例(Example test cases)簡單,要通過正確性測試(Correctness test cases)有點難,要通過效能測試(Performance test cases)很難,在此記錄心得

codility.jpg

測試題全測試項目通過會得到100分

題目:
輸入整數陣列A(int[] A),找到大於0並且不在A裡面,並且最接近0的正整數,再回傳數值

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

ComboBox不用取得邏輯焦點(!IsFocused),只要滑鼠在ComboBox上方(IsMouseOver),移動滾輪(MouseWheelEventArgs.Delta > 0 or < 0),就能調整選項

延續之前的文章,ItemsControl.ItemsSource關聯字串(string)型態資料檢視,繼續以ComboBoxOrderBuySell作為範例介紹

buysell.jpg

MouseWheelEventArgs.Delta > 0,代表滑鼠滾輪向上滾(圖左,遠離使用者),< 0,代表向下滾(圖右,靠近使用者)

XAML:

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

https://youtu.be/iuhLzFaPzKM

同場加映花蓮的海

鬼斧神工,景色太壯觀,拍照無法容納整個畫面

這是918地震前拍的,希望花蓮重建順利

觀光旅遊是當地的重要產業

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

光看文字說明很難理解IEnumerable<T>、yield break、yield return的使用方式,這裡紀錄相關程式碼範例和單元測試,幫助理解與記憶

ForeachSortedSet.jpg

//利用指定分隔符號分隔字串(輸入空白字串則不處理),再按原來順序回傳
static IEnumerable<string> SplitWithoutWhiteSpace(this string obj, params char[] separator)
{

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

https://youtu.be/rOg4FLWgAt4

最低水位的情況沒拍到,新聞寫2.6%,乾到見底

多餘的水好像就是白白溢流,有點可惜

有水當思無水之苦,極端氣候成常態,未來2.6%的紀錄還是有可能破

IMG_8704.jpg

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

每個月的第幾個星期幾轉DateTime

遊戲可能在每個月的第一、二、三或最後一個週末有分別的活動,
外國的節日也常常是以每個月的第幾個星期幾表示,譬如
母親節(Mother's Day),五月的第二個週日
感恩節(Thanksgiving Day),十一月的最後一個星期四

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

接續前一篇"將視窗拆成1+2*3的窗格"

MenuItemExit_Click.jpg

 

MenuItem的熱鍵有兩種,一種是Header值給特定底線('_'),一種是設定InputGestureText
(尚未測試不同的MenuItem給相同熱鍵會不會發生錯誤)

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()

接續之前"將視窗拆成2*3的窗格",要在上面多一行Menu沒想到有點複雜,設定上有些眉角,一點小錯就可能讓排版走位

MenuItemExit_Click.jpg

 

關鍵在把視窗切割成2*4,再把上面2格合併,配置給Menu

Menu (Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2")
AA (Grid.Row="1" Grid.Column="0") AB (Grid.Row="1" Grid.Column="1")
BA (Grid.Row="2" Grid.Column="0") BB (Grid.Row="2" Grid.Column="1")
CA (Grid.Row="3" Grid.Column="0") CB (Grid.Row="3" Grid.Column="1")

 

文章標籤

Yang 發表在 痞客邦 留言(0) 人氣()