|
|
@ -17,6 +17,8 @@ test3(A) -> |
|
|
|
_ = [O * 2 || O <- A], |
|
|
|
ok. |
|
|
|
|
|
|
|
-include("utTime.hrl"). |
|
|
|
|
|
|
|
-define(types, [1, 1.1, [], [1], {1}, #{}, <<"123">>, self()]). |
|
|
|
|
|
|
|
type1() -> |
|
|
@ -154,3 +156,61 @@ tt(B) -> |
|
|
|
io:format("IMY**********ttxxxxx ~p size ~p ~p ~p ~n", [self(), bit_size(B), erts_internal:term_type(B), binaryAddr:getBinAddr(Bin)]). |
|
|
|
|
|
|
|
|
|
|
|
testCCC() -> |
|
|
|
B1 = <<1:(8 * 64)>>, % 小于64字节 |
|
|
|
B2 = <<1:(8 * 65)>>, % 大于64字节 |
|
|
|
B3 = <<B1/binary, B2/binary, 1:1>>, % 混入1bit的bitstring |
|
|
|
<<B4:64/binary, B5:65/binary, _:1>> = B3, |
|
|
|
io:format("Pid:~w~n B1:~p~n B2:~p~n B3:~p~n B4:~p~n B5:~p~n",[ |
|
|
|
self(), |
|
|
|
{erts_internal:term_type(B1), binaryAddr:getBinAddr(B1)}, |
|
|
|
{erts_internal:term_type(B2), binaryAddr:getBinAddr(B2)}, |
|
|
|
{erts_internal:term_type(B3), binaryAddr:getBinAddr(B3)}, |
|
|
|
{erts_internal:term_type(B4), binaryAddr:getBinAddr(B4)}, |
|
|
|
{erts_internal:term_type(B5), binaryAddr:getBinAddr(B5)} |
|
|
|
]), |
|
|
|
spawn(?MODULE, ttt, [B3, erlang:size(B1), erlang:size(B2)]). |
|
|
|
|
|
|
|
testDDD(B1, B2) -> |
|
|
|
B3 = <<B1/binary, B2/binary, 1:1>>, % 混入1bit的bitstring |
|
|
|
<<B4:(erlang:size(B1))/binary, B5:(erlang:size(B2))/binary, _:1>> = B3, |
|
|
|
io:format("Pid:~w~n B1:~p~n B2:~p~n B3:~p~n B4:~p~n B5:~p~n",[ |
|
|
|
self(), |
|
|
|
{erts_internal:term_type(B1), binaryAddr:getBinAddr(B1)}, |
|
|
|
{erts_internal:term_type(B2), binaryAddr:getBinAddr(B2)}, |
|
|
|
{erts_internal:term_type(B3), binaryAddr:getBinAddr(B3)}, |
|
|
|
{erts_internal:term_type(B4), binaryAddr:getBinAddr(B4)}, |
|
|
|
{erts_internal:term_type(B5), binaryAddr:getBinAddr(B5)} |
|
|
|
]), |
|
|
|
spawn(?MODULE, ttt, [B3, erlang:size(B1), erlang:size(B2)]). |
|
|
|
|
|
|
|
ttt(B, Size1, Size2) -> |
|
|
|
<<B1:Size1/binary, B2:Size2/binary, _:1>> = B, % 匹配出小于64字节和大于64字节的binary数据 |
|
|
|
io:format("Pid:~w~n B1:~p~n B2:~p~n",[ |
|
|
|
self(), |
|
|
|
{erts_internal:term_type(B1), binaryAddr:getBinAddr(B1)}, |
|
|
|
{erts_internal:term_type(B2), binaryAddr:getBinAddr(B2)} |
|
|
|
]). |
|
|
|
|
|
|
|
testEEE(B1, B2) -> |
|
|
|
B3 = <<1:1, B1/binary, B2/binary>>, % 混入1bit的bitstring |
|
|
|
<<_:1, B4:(erlang:size(B1))/binary, B5:(erlang:size(B2))/binary>> = B3, |
|
|
|
io:format("Pid:~w~n B1:~p~n B2:~p~n B3:~p~n B4:~p~n B5:~p~n",[ |
|
|
|
self(), |
|
|
|
{erts_internal:term_type(B1), binaryAddr:getBinAddr(B1)}, |
|
|
|
{erts_internal:term_type(B2), binaryAddr:getBinAddr(B2)}, |
|
|
|
{erts_internal:term_type(B3), binaryAddr:getBinAddr(B3)}, |
|
|
|
{erts_internal:term_type(B4), binaryAddr:getBinAddr(B4)}, |
|
|
|
{erts_internal:term_type(B5), binaryAddr:getBinAddr(B5)} |
|
|
|
]), |
|
|
|
spawn(?MODULE, tttt, [B3, erlang:size(B1), erlang:size(B2)]). |
|
|
|
|
|
|
|
tttt(B, Size1, Size2) -> |
|
|
|
<<_:1, B1:Size1/binary, B2:Size2/binary>> = B, % 匹配出小于64字节和大于64字节的binary数据 |
|
|
|
io:format("Pid:~w~n B1:~p~n B2:~p~n",[ |
|
|
|
self(), |
|
|
|
{erts_internal:term_type(B1), binaryAddr:getBinAddr(B1)}, |
|
|
|
{erts_internal:term_type(B2), binaryAddr:getBinAddr(B2)} |
|
|
|
]). |
|
|
|
|
|
|
|
|