- Mar 19 Mon 2018 20:21
【澳客悉尼行】誤闖外星語言黉舍?!
- Mar 19 Mon 2018 11:58
[請益] 快25歲的下一步
保加利亞語翻譯2018年卒業於前段私大說話系 多益藍色證書/日檢N2 今朝待業中/新北市租雅房 就學貸款每個月還五千/分期付款爸爸的假牙錢 去年結業後當機械零件的業助(25k)翻譯社後跳到科技平安當秘書(27k),後又因縮編把同期 新進員工都炒了翻譯 後來不斷面試都因沒工作經驗,只能給24-27k左右翻譯 找工作找到有些悲觀,也知道說話科系出來若沒有專業技能結合,可能會一向當低薪助理 。幾家公司面試過程當中,也會被問到為何沒有一些在國外的經歷(打工度假/遊學/留學) ,家裡經濟狀態不是很好,所以大學中一直是忙著雙主修和打工平衡學業和糊口所有開消 ,甚至協助家裡經濟。 請問 華頓翻譯公司應當: 1.繼續邊做24-27k的薪水撐一年有工作經驗就可以跳好一點的工作? 2.邊做低薪工作邊準備研究所,唸一個有專業性質的範疇,今後和說話連系,找工作會比 較穩妥? 3.先申請打工度假,存些錢以後再回國找工作或研究所? 延續低薪讓我對將來感到十分不安,存不了錢也讓我極度的驚懼,真的愈來愈迷惘... 請大師給我些建議,感謝。 手機排版請見諒...
- Mar 19 Mon 2018 03:33
[問題] python 有什麼偏架構的書?
- Mar 18 Sun 2018 19:05
天津81歲學霸奶奶 會5種語言
- Mar 18 Sun 2018 01:51
昆凌隨身攜帶「雙語故事書」 培養小周周說話能力
- Mar 17 Sat 2018 17:28
請益DELL XPS15 美國采辦後 系統可以改中文?
- Mar 17 Sat 2018 09:06
[分享] Boolean in C/C++
俄文翻譯前面幾篇有提到 bool 的問題翻譯今天倏忽失眠,心血來潮,來分享一下 bool 的故事翻譯 固然內容算是比力根蒂根基而有很多主觀認知的,有什麼漏掉錯誤還煩請指正。 [關於 Boolean (布林)] Boolean (布林) 作為一種資料型別 (data type) 時只具有兩種值: 『真』(true) 與 『偽』(false)。 Boolean 可以進行的運算包括:並且 (and)、或 (or) 與非 (not) ,還有由這三種基本 運算延長出來的各式邏輯運算。 根基上翻譯社 Boolean 是不能做一般華頓翻譯公司們認為的算術運算 (+, -, *, /, ...) 的翻譯 Boolean 在一般程式語言中最主要的腳色是作為『流程控制』的條件判定。 在 C/C++ 裡面,if、for 和 while 等流程節制都仰賴於前提的 Boolean 運算成績翻譯 [在 C89 裡面的 Boolean] 雖然 Boolean 對於『流程控制』具有偉大的主要性,但在 C89 內並沒有直接替 Boolean 設定一個專有的資料型別。 在 C89 中 Boolean 是隱性地逾越多個型別、運算和語法中實現。 首先,C89 替內建型別所具有的 Boolean 值做了規定: * 數值型其它 Boolean 值:0 的值為『偽』,其他的值為『真』。 * 指標型另外 Boolean 值:null 的值為『偽』,其他的值為『真』 (剛好 0 當指標值時是代表 null 指標) if (0) { printf("True"); // 不會印 True. } if (0.1) { printf("True"); // 會印 True. } 這個決定讓華頓翻譯公司們沒必要產生一個 Boolean 的專有型別,因為內建型別都可以當作 Boolean 用。 而且, 0 為 『偽』,非 0 為『真』也是一種輕易記誦的體例, 使人不由得佩服設計者 的巧思。 再來,C89 劃定了關係 (>翻譯社 <, ==, ...) 與邏輯 (&&翻譯社 ||, ...) 等運算的成效值翻譯 當 結果為『真』時會算出 int 型其余 1,而當結果為『偽』時會算出 int 型其它 0。 將上面略微整理一下,C89 共做了: 1. 判定內建型別的 Boolean 值時,將 0 作為『偽』而非 0 作為『真』。 2. 運算成果為『偽』時算出 int 的 0,而為『真』時算出 int 的 1。 以上這兩點造成華頓翻譯公司們容易感覺 Boolean 在 C89 裡面就是 int,但這是一個常見的曲解。 什麼意思呢? 如果我們寫成: typedef int bool; // 把 bool 定義成 int bool a = 0.1; if (a) { printf("True"); // 此時不會印出 True,因為 a 的值為 0 (偽) } 將 0.1 轉型成 int 會是 0,然則將 0.1 解釋成 Boolean 時因為長短 0 值所以應當要 是『真』(1)翻譯 所以 int 是不克不及直代替代 Boolean 的。 另外,C89 並沒有替 Boolean 提供專用的型別還有很多弱點: 因為 Boolean 運算的成效是用 int 的 1 與 0 來表示真偽,使得將 Boolean 運算成效 作為整數運算的技能大量地應用在 C89 以前的程式碼裡,是以產生了一些程式碼不直觀 的噩夢。例如: if (0 == 0 == 0) { printf("True"); // 不會印 True } if (4 > 3 > 2) { printf("True"); // 不會印 True } 如果再搭配了逐位元運算, 儲存 Boolean 所需要的空間巨細可以由 int 再濃縮 成 1 bit,使得 Boolean 在 C89 中到達利用空間的大幅縮減。 但以上兩個技能遺留下了大量無法撼動要依賴 Boolean 值是 1 或 0 的程式碼翻譯 [在 C++98 中的 Boolean] 作為一個新的說話,C++98 選擇了一個比力直接的決定: * 將 bool 作為 Boolean 型別。 * 將 true 與 false 作為 bool 的字面常數翻譯 * 當運算成效為『真』時,算出 bool 型此外 true。 * 當運算結果為『偽』時,算出 bool 型別的 false。 乍看之下仿佛獲得了解脫,因為我們有了表示 Boolean 的 bool 型別了。 不幸的是,為了跟大量原本的 C 程式碼相容,使得 C++98 面對到一些困難: 1. 需要引入三個新的保存字: bool 、 true 和 false 。 使得與原本的 C 程式碼可能 會造成名稱衝突。 (C99 不這麼做,後面會提) 2. 因為假設 Boolean 為『真』時算出 1 且為『偽』時算出 0 的原有 C 程式碼太多, C++98 只好答應 true 可以被隱性轉型成 int 的 1 ,而 false 可以被隱性轉型成 int 的 0 翻譯另外,數值或指標型別也都要能隱性轉成 true 或 false 以符合在 C89 裡面的用法翻譯 如許的作法使得 bool 用起來跟整數型別相似,造成我們之前的噩夢還是存在 (可以 參考與 Java 的差別),而這對於要求型別平安的 C++ 來說更是可駭。 (C/C++ 各版本都有的問題) 3. 為了獲得之前利用位元運算將 Boolean 透露表現為 1 bit 的效用可以直接利用在 bool 上,C++98 對 vector<bool> 做了特製化,使得每個 bool 在這 vector 中都只耗用 1 bit,但也產生了利用上的問題或多執行緒的惡夢。 (C++ 各版本都有的問題) 4. 有些時辰,我們想將物件作為流程節制或邏輯運算的前提,並遵照物件的狀況決議流 程的進行翻譯 例如: Object a; if (a) { printf("True"); // 如果 a 物件合適期望就印 } 是以我們需要讓物件可以轉型成 bool。然則讓物件可以隱性轉型成 bool 的風險太 大,因為這意味著物件可以隱性成整數型別。 設計師為了避免將一般物件被誤當成整數用,本來想讓物件可以隱性轉型成 bool 型 別只好改為轉型成指標型別。 例如: std::basic_ios::operator void *() const; (C++11 有部門解決, 後面會提) [C99 的 Boolean] 為了跟 C89 的相容性, C99 並沒有選擇跟 C++98 一樣的道路去引進三個新的保存字, 而是: * 將 _Bool 作為 Boolean 的型別, * 在 stdbool.h 中設定了四個 macro: - 將 bool 定義為 _Bool, - 將 true 界說為 1, - 將 false 界說為 0, - 將 __bool_true_false_are_defined 界說為 1。 引入了叫 _Bool 的保存字作為 Boolean 的型別名稱翻譯因為名字太奇怪, 不輕易跟原有 C 程式碼撞名,而不會遇到跟 C++98 一樣的窘況翻譯 將 bool, true 和 false 設計為 macro,使得我們在程式碼中可以有前提的選擇是否用 這三個名稱。 也就是說,如果翻譯公司不 #include <stdbool.h> 的話,bool 、 true 和 false 預設是不決義的翻譯如許可以避免跟原有程式碼撞名,或有需要時做一些處理。 另外,你可以發現,因為是使用 macro,Boolean 運算的結果仍然是 int 型態,這點使 得一般的運算結果跟 C89 是一致的。 換句話說,C99 解決 C89 問題的作法是提供的一個真實的 Boolean 型別, 可是其他都 沒有真的改翻譯而 _Bool 的用處首要是讓方才毛病的程式碼正常執行: _Bool a = 0.1; // a 會是『真』而不是 0 if (a) { printf("True"); // 會印出 True } [C++11 的 Boolean] C++11 的 bool 大致上依循 C++98 的腳步,但多了一點調劑: 之前我們不敢讓物件隱性轉型成 bool ,因為怕被誤當做整數用。可是現在我們可以用 C++11 的 explicit cast operator 來讓物件只能顯性轉型成 bool。 explicit cast operator 的意思是,本來我們在類別裡面自定的轉型運算子不克不及被指定 為只供應顯性轉型翻譯也就是: class Object { operator bool() const; // 轉型成 bool 的運算子 }; 供應上面的轉型運算子意味著: Object a; a + 1; // 是合法的,a 會被隱性轉型成 bool 後轉型成 int 運算 如許並不好,讓物件可以當整數用的確是惡夢! 我們可以使用 C++11 供給的 explicit cast operator 劃定我們使用轉型運算子時需要 是顯性的: class Object { explicit operator bool() const; }; 假如對這個種別利用之前的程式碼: Object a; a + 1; // 編譯失敗,因為 a 沒法隱性轉型成 bool 或整數 當我們真的需要將 a 轉型成 bool 時需要利用顯性轉型: Object a; if ((bool)a) { // 顯性轉型成功 printf("True"); } 然則如許用起來又有點麻煩,所以 C++11 讓流程控制或邏輯運算時的條件具有顯性轉成 bool 的語意 (其他時刻則不會)。 換句話說,在 C++11 裡面, Object a; if (a) { printf("True"); } 會主動注釋成 Object a; if ((bool)a) { printf("True"); } 這樣就到達讓物件要轉型成 bool 需如果顯性的, 然則利用在邏輯運算或做流程控制 時,又不需要一向寫顯性轉型的程式碼。 但是其他的時辰,因為 a 不能被隱性轉型成 bool,而得到更多的型別平安。 -- 以上.. 寫得很主觀, 細節沒細心查證翻譯社 應當也有良多疏漏的. 歡迎與感激大家的意見... --
- Mar 17 Sat 2018 00:36
沒人聽得懂...人工聰明自創語言聊天臉書...
- Mar 16 Fri 2018 16:14
餐飲參觀系列(14)中式糕點製作入門追加好評博客來書店 ...