十六進製制string轉換UIColor 備用

2021-09-07 06:24:12 字數 1264 閱讀 3415

- (uicolor *) colorwithhexstring: (nsstring *) stringtoconvert

nsstring *cstring = [[stringtoconvert stringbytrimmingcharactersinset:[nscharacterset whitespaceandnewlinecharacterset]] uppercasestring];//字串處理

//例子,stringtoconvert #ffffff

if ([cstring length] < 6)

return default_void_color;//如果非十六進製制,返回白色

if ([cstring hasprefix:@"#"])

cstring = [cstring substringfromindex:1];//去掉頭

if ([cstring length] != 6)//去頭非十六進製制,返回白色

return default_void_color;

//分別取rgb的值

nsrange range;

range.location = 0;

range.length = 2;

nsstring *rstring = [cstring substringwithrange:range];

range.location = 2;

nsstring *gstring = [cstring substringwithrange:range];

range.location = 4;

nsstring *bstring = [cstring substringwithrange:range];

unsigned int r, g, b;

//nsscanner把掃瞄出的制定的字串轉換成int型別

[[nsscanner scannerwithstring:rstring] scanhexint:&r];

[[nsscanner scannerwithstring:gstring] scanhexint:&g];

[[nsscanner scannerwithstring:bstring] scanhexint:&b];

//轉換為uicolor

return [uicolor colorwithred:((float) r / 255.0f)

green:((float) g / 255.0f)

blue:((float) b / 255.0f)

alpha:1.0f];

十六進製制轉換

0x16進製制 編輯 討論 現實生活中,我們最常見的數為十進位制數,比如交通訊號燈上的數字,電子錶上的時間等。如果在這些地方你看到0xaa,就會感覺很奇怪。但是這樣的數代表什麼意思,為什麼會有這樣的數,它與十進位制的數有什麼關係以及它都有哪些應用呢。下面將帶你了解一下十六進製制數的秘密。中文名 0x...

進製轉換 十六進製制轉八進位制 十六進製制轉十進位制

在十六進製制轉為八進位制的過程中包含了將十六進製制轉化為二進位制以及將二進位制轉化為八進位制!我自己測試是沒什麼問題,但是在藍橋杯官網的測試系統就顯示執行錯誤qwq 不知道為什麼 附 include includeusing namespace std int main if len2 i 3 2 ...

進製轉換 二進位制轉十六進製制 十六進製制轉十進位制

這幾天在做乙個與plc互動的系統,plc會傳過來一些指令,這些指令是二進位制的格式,要轉為4位十進位制的指令來讀,下面是 部分 public class byteschange int beginindex 0 int length 16 string instructions while true...