unsigned 型別減法注意點
新年第一天,執行新年計劃,每日一記,大小皆宜。
今天碰到一個小問題,不引人注目,卻也會是個大坑,留下警示自己吧。
程式碼中有兩個unsigned int相減的公式:
unsigned int a = 1;
unsigned int b = 2;
那麼 int c = a - b;等於多少呢?
一個小細節,都以為是-1,沒問題!!!!
可是GDB裡面走一下怎麼就是不對,一個很大的數字,為什麼呢?奇怪!!!!
仔細想想,原理自明!!!
a, b 都是unsigned int型別,做減法的時候不需型別轉換,但是當值小於0的時候就溢位了,成了一個無效的數字。
以後注意!!!
相關推薦
unsigned 型別減法注意點
新年第一天,執行新年計劃,每日一記,大小皆宜。 今天碰到一個小問題,不引人注目,卻也會是個大坑,留下警示自己吧。 程式碼中有兩個unsigned int相減的公式: unsigned int a = 1; unsigned i
JavaScript物件型別判斷注意點
注意點 不要使用 new Number() 、 new Boolean() 、 new String() 建立包裝物件;用 parseInt() 或 parseFloat() 來轉換任意型別到number;用
js型別轉換注意點
1、轉換成字串時,使用 String 構造器 constreviewScore=9 // bad consttotalScore= reviewScore +''// 實際呼叫: reviewScore.valueOf()constobj= { valueO
銀行減法注意點
1.做減法的時候可能因為精度問題導致錯誤 如: double a=0.06; double b=0.01; System.out.println()a-b 這個會顯示0.049999... 顯然不是我們要的 2.使用BigDecimal,注意了!是使用BigDeci
Java的返回型別的幾點注意
1. 在方法重寫時不能變更宣告的返回型別,但可以為宣告的返回型別的子類 public class Foo{ void go() { } } class Bar extends Foo { String go() { // 不合法 return null; } }
mybatis if判斷integer型別注意點
今天在寫mapper檔案時遇到integer型別引數時判斷不為空,如下<if test="status != null and status != ''"> SQL。。。</if>當status=0時,if語句沒有執行。究其原因,原來mybati
使用新版MyBatis Generator 生成實體類注意點:防止型別不匹配、跳庫
多個數據庫有相同表名,可能欄位型別不一樣,導致生成的實體類,欄位個數對不上,欄位型別也對不上,錯亂了。 可以看下,我用的是demo資料庫,其它資料庫的表也被掃出來了: 資料表: 生成的實體類: 欄位型別不匹配 資料庫表 生成實體類:
WTForms做更新時的一些注意點
因為做“新增”和“更新”操作時的內容都是類似的,所以可以定義一個FlaskForm類然後在“新增”和“更新”模板中都使用該類進行渲染: MovieForm(FlaskForm): class MovieForm(FlaskForm): tag_list = Tag.query.al
CentOs6.3上安裝Oracle11g的注意點
一、配置oracle使用者下的環境變數 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User
給初學者:JavaScript 的常見注意點
作者:CarterLi 連結:https://segmentfault.com/a/1190000012730162(點選尾部閱讀原文前往) 本文總結一下JavaScript初學者常見的其他易錯點。 寫立即執行函式時前置 void 立即執行函式(IIFE
String、Object、包裝類的常用方法以及注意點
String類 1.1String的兩種例項化方式 a.直接賦值 String str=“hello”; b.通過構造方法例項化String物件 1.2字串相等比較
【PHP學習】靜態檔案快取綜合小案例以及一些函式的注意點
靜態快取技術 儲存在磁碟上的靜態檔案,用PHP生 成資料到靜態檔案中。原理如下: php中的快取操作 生成快取 獲取快取 刪除快取 甩一段別人的程式碼 class Response{ static public function datas($cod
java下載檔案注意點
前臺: 不建議使用ajax,可以使用window.location.href 後臺: 三個引數--> response path filename--filename如果要防止亂碼,可以用String str = URLEncoder.encode("中國","utf-8")
Spark2.10中使用累加器、注意點以及實現自定義累加器
累加器(accumulator)是Spark中提供的一種分散式的變數機制,其原理類似於mapreduce,即分散式的改變,然後聚合這些改變。累加器的一個常見用途是在除錯時對作業執行過程中的事件進行計數。 累加器簡單使用 Spark內建的提供了Long和Double型別的累加器。下面是一個簡單的使
mysql資料庫基本操作注意點
對於一個初學資料庫的人來說,最主要的還是要掌握DQL資料庫查詢語言和DML資料操作語言。 這裡主要對DQL進行簡單的總結,實質就是學習的筆記。 資料查詢語言基本的語句結構為select * from table_name; 1. 條件語句where關建字,支援多種運算子 比較運
【Java TCP/IP Socket程式設計】----進階----注意點
1.廣播和多播:TCP套接字中客戶端只能接收和傳送指定伺服器端過來的資料,這種一對一的通訊方式叫單播,而UDP套接字可以容許一個傳送端和多個接收端情況,一對多的型別有:廣播和多播。 1)廣播:本地網路中所有的主機都會接收到一份資料副本。IPv4廣播地址(
將專案打成war包並用tomcat部署的方法,步驟及注意點
部署的遇到第一個問題,就是tomcat和jdk的環境問題: 首先 理解為啥要關注這二者的環境呢?他們還是有關係的–tomcat 作為比較流行的java Web伺服器也是用java來實現的一個比較大的軟體 它也必須在虛擬機器JVM上執行 。 而java很多運用都是用在web開發上 所以他們就聯絡在一起
wait()、notify()、notifyAll() sleep()的注意點
參考:https://blog.csdn.net/u014561933/article/details/58639411 參考:Java併發程式設計藝術 P98 wait補充知識點:有且只能呼叫持有鎖對應的物件的wait方法。若持有的是當前執行緒物件的鎖,則可以直接呼叫wait()/t
微信小程式注意點與快捷鍵
注意點1. 微信對小程式的要求是整體大小不能超過1MB。 2. .json 是配置檔案,其內容必須符合JSON格式,所以檔案內部不允許有註釋。 3. app.json 是全域性配置檔案,微信小程式中的每一個頁面的【路徑+頁面名】都需要寫在 app.json 的 pages 中,且 pages 中的第一個頁面是
c語言定義指標型別需注意事項
1)在定義說明語句中,指標變數名之前的星號“*“是指標變數的修飾符,也就是說它所修飾的變數是指標變數。 2)指標變數是用它們所指向的物件型別來區分的。如定義 int *ip,型別int並不是指標的型別,而是指標所指向變數的型別。 3)儘管各種指標變數所儲存的是記憶體中的地址,但不同型別的指標是不能互換或者