複習筆記8 27之不同位數機器的各型別長度

2021-08-07 11:00:37 字數 592 閱讀 8296

首先,我是64位的機器,但是之前為了方便學習使用裝上了32位的作業系統,所以就有乙個問題,到底我在這台機器上面使用各種變數型別的時候,他們的長度是怎麼樣的。

所以我就進行了乙個小測試,關鍵**如下:

int *p = null;

printf( "%d ",sizeof( short ) );

printf( "%d ",sizeof( int ) );

printf( "%d ",sizeof( long ) );

printf( "%d ",sizeof( long long ) );

printf( "%d ",sizeof( double ) );

printf( "%d ",sizeof( float ) );

printf( "%d",sizeof( p ) );

列印結果如下:

2 4 4 8 8 4 4

然後我們看到,64位機器,32位作業系統下

指標型別的長度為4,long型別的長度也為4,

而在64位機器下,應當與機器保持一致的8,在此處卻變成了4,可知,c/c++環境裡面的變數型別的長度取決於當前的作業系統位數,而不是機器自身的位址匯流排。

計算兩個數 不同位數的個數

先來分析一下,比如456和457,不同的位數即為1.異或是相同為0,不同為1.我們可以使用異或來方便的解決這個問題,把這兩個數異或可以拿到乙個二進位制數,有多少個1就有多少不同的位數,所以主要任務就成為了如何拿到乙個數一的個數,這最好的辦法就是每次右移一位,然後與1,這也是拿到1的個數的最便利的方法...

比對不同位數身份證號的SQL問題

今天碰到的問題,人口庫,與需要比對庫的身份證號碼都存在這樣的問題 記錄裡面有些記錄身份證號碼15位,有些是18位的。這給比對帶來了麻煩,最好的辦法就是更新成為統一的,因為15變18可能是人工填寫,容易錯,最好都改成15位的。我不想通過update統一修改庫里的資料,這是自己給自己找的麻煩,怎麼弄呢。...

ROS複習筆記之 roslaunch的應用

繼部落格 ro發布者s複習筆記之 系統框架及其程式設計規範 本博文講解一下roslaunch的呼叫 目錄 建立launc 件並使用 launch標籤介紹 參考資料 首先建立乙個 launc 件。用於roslaunch的檔案具有 launc 件名,在對應功能包目錄中建立乙個launch 目錄,並將la...