我有提取二進制表示的最後4個數字 我的電話號碼的一個問題是:1111 1001
我拿到第一個4
但是我必須拿到的問題過去四年^:提取的最後四位數的INT的二進制表示
# include <stdio.h>
# include <stdlib.h>
# define BYTETOBINARYPATTERN "%d%d%d%d%d%d%d%d\n"
# define BYTETOBINARY(byte) \
(byte & 0x80 ? 1 : 0), \
(byte & 0x40 ? 1 : 0), \
(byte & 0x20 ? 1 : 0), \
(byte & 0x10 ? 1 : 0), \
(byte & 0x08 ? 1 : 0), \
(byte & 0x04 ? 1 : 0), \
(byte & 0x02 ? 1 : 0), \
(byte & 0x01 ? 1 : 0)
int main()
{
int num = 505;
PRINTBIN (num);
// int result = num & bitwise;
//PRINTBIN(result);
// first num;
int i;
int bit=0x01;
int bitwise;
for (i =0;i<4;i++)
{
int bit1=bit<<i;
bitwise = bit1|bit;
}
printf("1:%d\n", bitwise);
PRINTBIN(bitwise);
//second num;
int bitwise1;
int b0 = 0;
int bit2;
for(i=0;i<4;i++)
{
bit2 = bit<<(4+i);
bitwise1 = bit2|b0;
PRINTBIN(bit2);
}
printf("2:%d\n",bitwise1);
PRINTBIN(bitwise1);
return 0;
}
Oooh,我認爲那是第二個四,使用更好的術語可能是最重要的,也是最不重要的。最重要的是最左邊的文字,稱爲「最重要的」,因爲它們代表了更大的數字。無論如何,我這樣做的方式是將數字右移四次:'num >> = 4;'然後按照您對第一個過程的相同方式重複該過程。通過轉移它,將新問題轉換爲現有解決的問題,以便您再次執行相同的操作。 – 2014-12-03 04:20:53
這太好了。非常感謝你。我學會了一種新技術,使按位操作變得更容易 – SunnyTrinh 2014-12-03 04:23:08
沒有'%b'轉換說明符(至少就C規範或POSIX而言)。 – dreamlax 2014-12-03 04:24:24